+2007-07-20 13:55 UTC Tuomo Valkonen <tuomov@iki.fi>
+ tagged ion-3rc-20070720
+
+2007-07-20 13:55 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * 'Release notes
+
+2007-07-16 12:25 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * The dock uses WMPlex size policies now
+
+2007-07-14 20:32 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Added 'orientation' winprop
+
+2007-07-14 20:07 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Some REGION_SKIP_FOCUS flag management
+
+2007-07-12 18:56 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Oops, wrong return value test for XTextPropertyToStringList
+
2007-07-08 09:36 UTC Tuomo Valkonen <tuomov@iki.fi>
tagged ion-3rc-20070708
+ion-3rc-20070720
+----------------
+
+This fourth "rc" release fixes some minor bugs and omissions in
+the previous release.
+
+
ion-3rc-20070708
----------------
+2007-07-14 21:59 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Removed obsolete TODO note
+
+2007-07-14 20:34 UTC Tuomo Valkonen <tuomov@iki.fi>
+ * Documented orientation winprop
+
2007-07-08 09:38 UTC Tuomo Valkonen <tuomov@iki.fi>
tagged ion-doc-3rc-20070708
\end{winprop}
+\begin{winprop}{orientation}{string}
+ \index{orientation@\var{orientation}}
+ The orientation of the window: one of \codestr{vertical} or
+ \codestr{horizontal}. This is only useful when using the
+ window as a status display.
+\end{winprop}
+
+
\begin{winprop}{statusbar}{string}
\index{statusbar@\var{statusbar}}
Put the window in the statusbar, in the named tray component,
Context:
+[Removed obsolete TODO note
+Tuomo Valkonen <tuomov@iki.fi>**20070714215925]
+
+[Documented orientation winprop
+Tuomo Valkonen <tuomov@iki.fi>**20070714203400]
+
[TAG ion-doc-3rc-20070708
Tuomo Valkonen <tuomov@iki.fi>**20070708093830]
\BOOKMARK [2][-]{subsection.5.2.1}{ Direct object references}{section.5.2}
\BOOKMARK [2][-]{subsection.5.2.2}{ Name-based lookups}{section.5.2}
\BOOKMARK [1][-]{section.5.3}{ Alternative winprop selection criteria}{chapter.5}
-\BOOKMARK [1][-]{lstlisting.5.-266}{ Writing !ion-statusd! monitors}{chapter.5}
+\BOOKMARK [1][-]{lstlisting.5.-267}{ Writing !ion-statusd! monitors}{chapter.5}
\BOOKMARK [0][-]{chapter.6}{ Function reference}{}
\BOOKMARK [1][-]{section.6.1}{ Functions defined in ioncore}{chapter.6}
\BOOKMARK [2][-]{subsection.6.1.1}{ WClientWin functions}{section.6.1}
\title{Configuring and extending Ion3 with Lua}
\author{Tuomo Valkonen \\ tuomov at iki.fi}
-\date{2007-07-08}
+\date{2007-07-20}
\makeindex
-This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) (format=latex 2007.4.8) 8 JUL 2007 12:40
+This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) (format=latex 2007.4.8) 20 JUL 2007 16:59
entering extended mode
**./images.tex
(./images.tex
]
-l2hSize :tex2html_wrap_inline2241:8.7125pt::8.7125pt::23.6642pt.
+l2hSize :tex2html_wrap_inline2259:8.7125pt::8.7125pt::23.6642pt.
[3
]
-l2hSize :tex2html_wrap_inline5516:7.5626pt::7.5626pt::14.53923pt.
+l2hSize :tex2html_wrap_inline5534:7.5626pt::7.5626pt::14.53923pt.
[4
]
-l2hSize :tex2html_wrap_inline5518:7.5626pt::7.5626pt::14.53923pt.
+l2hSize :tex2html_wrap_inline5536:7.5626pt::7.5626pt::14.53923pt.
[5
]
-l2hSize :tex2html_wrap_inline7768:8.7125pt::8.7125pt::86.9574pt.
+l2hSize :tex2html_wrap_inline7786:8.7125pt::8.7125pt::86.9574pt.
[6
\title{Configuring and extending Ion3 with Lua}
\author{Tuomo Valkonen \\tuomov at iki.fi}
-\date{2007-07-08}
+\date{2007-07-20}
\makeindex
\stepcounter{subsection}
\stepcounter{subsection}
{\newpage\clearpage
-\lthtmlinlinemathA{tex2html_wrap_inline2241}%
+\lthtmlinlinemathA{tex2html_wrap_inline2259}%
$(0, 1]$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
\stepcounter{subsection}
\stepcounter{subsection}
{\newpage\clearpage
-\lthtmlinlinemathA{tex2html_wrap_inline5516}%
+\lthtmlinlinemathA{tex2html_wrap_inline5534}%
$-1$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
{\newpage\clearpage
-\lthtmlinlinemathA{tex2html_wrap_inline5518}%
+\lthtmlinlinemathA{tex2html_wrap_inline5536}%
$-2$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
\stepcounter{section}
\stepcounter{subsection}
{\newpage\clearpage
-\lthtmlinlinemathA{tex2html_wrap_inline7768}%
+\lthtmlinlinemathA{tex2html_wrap_inline7786}%
$\{t,m,b\}\times\{t,c,b\}$%
\lthtmlinlinemathZ
\lthtmlcheckvsize\clearpage}
<P ALIGN="CENTER"><STRONG>Tuomo Valkonen</STRONG></P>
<P ALIGN="CENTER"><I>tuomov at iki.fi</I></P>
-<P ALIGN="CENTER"><STRONG>2007-07-08</STRONG></P>
+<P ALIGN="CENTER"><STRONG>2007-07-20</STRONG></P>
</DIV>
<P>
<P ALIGN="CENTER"><STRONG>Tuomo Valkonen</STRONG></P>
<P ALIGN="CENTER"><I>tuomov at iki.fi</I></P>
-<P ALIGN="CENTER"><STRONG>2007-07-08</STRONG></P>
+<P ALIGN="CENTER"><STRONG>2007-07-20</STRONG></P>
</DIV>
<P>
Index</A>
</H2><HR><DL>
<DD><STRONG><TT>acrobatic</TT></STRONG>
- : <A HREF="node4.html#1451"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+ : <A HREF="node4.html#1458"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><SPAN CLASS="textbf">Alt</SPAN></STRONG>
: <A HREF="node4.html#883"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><SPAN CLASS="textbf">AnyModifier</SPAN></STRONG>
: <A HREF="node4.html#881"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><TT>resizeinc</TT></STRONG>
- : <A HREF="node4.html#1466"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
- | <A HREF="node4.html#1467"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node4.html#1474"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ | <A HREF="node4.html#1475"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><SPAN CLASS="textbf">Button-n</SPAN></STRONG>
: <A HREF="node4.html#887"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN></A>
<DD><STRONG><TT>class</TT></STRONG><DL>
-<DD><STRONG>winprop</STRONG> : <A HREF="node4.html#1473"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
+<DD><STRONG>winprop</STRONG> : <A HREF="node4.html#1481"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
</DL>
<DD><STRONG><TT>clientwin_do_manage_alt</TT></STRONG>
- : <A HREF="node7.html#8246"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
+ : <A HREF="node7.html#8264"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG><TT>clientwin_mapped_hook</TT></STRONG>
- : <A HREF="node7.html#8247"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
+ : <A HREF="node7.html#8265"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG><TT>clientwin_property_change_hook</TT></STRONG>
- : <A HREF="node7.html#8248"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
+ : <A HREF="node7.html#8266"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG><TT>clientwin_unmapped_hook</TT></STRONG>
- : <A HREF="node7.html#8249"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
+ : <A HREF="node7.html#8267"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG><SPAN CLASS="textbf">Control</SPAN></STRONG>
: <A HREF="node4.html#879"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><TT>defmenu</TT></STRONG>
: <A HREF="node4.html#1198"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>drawing engine</STRONG>
- : <A HREF="node5.html#1888"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node5.html#1906"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>ETCDIR</TT></STRONG>
: <A HREF="node4.html#583"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>float</TT></STRONG>
- : <A HREF="node4.html#1452"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+ : <A HREF="node4.html#1459"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><TT>frame_managed_changed_hook</TT></STRONG>
- : <A HREF="node7.html#8250"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
+ : <A HREF="node7.html#8268"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG><TT>fullscreen</TT></STRONG>
- : <A HREF="node4.html#1453"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+ : <A HREF="node4.html#1460"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><TT>ignore_resizeinc</TT></STRONG>
- : <A HREF="node4.html#1470"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
- | <A HREF="node4.html#1471"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node4.html#1478"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ | <A HREF="node4.html#1479"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>ignore_cfgrq</TT></STRONG>
- : <A HREF="node4.html#1454"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+ : <A HREF="node4.html#1461"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><TT>ignore_max_size</TT></STRONG>
- : <A HREF="node4.html#1468"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node4.html#1476"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>ignore_min_size</TT></STRONG>
- : <A HREF="node4.html#1469"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node4.html#1477"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>ignore_net_active_window</TT></STRONG>
- : <A HREF="node4.html#1455"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+ : <A HREF="node4.html#1462"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><TT>instance</TT></STRONG><DL>
-<DD><STRONG>winprop</STRONG> : <A HREF="node4.html#1475"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
+<DD><STRONG>winprop</STRONG> : <A HREF="node4.html#1483"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
</DL>
<DD><STRONG><TT>ioncore_deinit_hook</TT></STRONG>
- : <A HREF="node7.html#8252"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
+ : <A HREF="node7.html#8270"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG><TT>ioncore_post_layout_setup_hook</TT></STRONG>
- : <A HREF="node7.html#8253"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
+ : <A HREF="node7.html#8271"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG><TT>ioncore_sigchld_hook</TT></STRONG>
- : <A HREF="node7.html#8251"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
+ : <A HREF="node7.html#8269"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG><TT>ioncore_snapshot_hook</TT></STRONG>
- : <A HREF="node7.html#8254"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
+ : <A HREF="node7.html#8272"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG><TT>ioncore_submap_ungrab_hook</TT></STRONG>
- : <A HREF="node7.html#8255"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
+ : <A HREF="node7.html#8273"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG><TT>is_dockapp</TT></STRONG><DL>
-<DD><STRONG>winprop</STRONG> : <A HREF="node4.html#1478"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
+<DD><STRONG>winprop</STRONG> : <A HREF="node4.html#1486"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
</DL>
<DD><STRONG><TT>is_transient</TT></STRONG><DL>
-<DD><STRONG>winprop</STRONG> : <A HREF="node4.html#1477"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
+<DD><STRONG>winprop</STRONG> : <A HREF="node4.html#1485"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
</DL>
<DD><STRONG><TT>jumpto</TT></STRONG>
- : <A HREF="node4.html#1456"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+ : <A HREF="node4.html#1463"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><SPAN CLASS="textit">keysymdef.h</SPAN></STRONG>
: <A HREF="node4.html#877"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><SPAN CLASS="textbf">Lock</SPAN></STRONG>
<DD><STRONG>manager</STRONG>
: <A HREF="node3.html#382"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>max_size</TT></STRONG>
- : <A HREF="node4.html#1464"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node4.html#1472"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>menuentry</TT></STRONG>
: <A HREF="node4.html#1199"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>menus</STRONG>
: <A HREF="node4.html#1144"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>min_size</TT></STRONG>
- : <A HREF="node4.html#1465"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node4.html#1473"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><SPAN CLASS="textbf">ModN</SPAN></STRONG>
: <A HREF="node4.html#880"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><TT>name</TT></STRONG><DL>
-<DD><STRONG>winprop</STRONG> : <A HREF="node4.html#1476"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
+<DD><STRONG>winprop</STRONG> : <A HREF="node4.html#1484"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
</DL>
<DD><STRONG><TT>new_group</TT></STRONG>
- : <A HREF="node4.html#1457"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+ : <A HREF="node4.html#1464"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><SPAN CLASS="textbf">NumLock</SPAN></STRONG>
: <A HREF="node4.html#885"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG>Obj</STRONG>
: <A HREF="node3.html#410"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>oneshot</TT></STRONG>
- : <A HREF="node4.html#1458"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+ : <A HREF="node4.html#1465"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+<DD><STRONG><TT>orientation</TT></STRONG>
+ : <A HREF="node4.html#1466"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG>parent</STRONG>
: <A HREF="node3.html#367"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>PREFIX</TT></STRONG>
: <A HREF="node4.html#582"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>region_do_warp_alt</TT></STRONG>
- : <A HREF="node7.html#8257"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
+ : <A HREF="node7.html#8275"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG><TT>region_notify_hook</TT></STRONG>
- : <A HREF="node7.html#8259"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
+ : <A HREF="node7.html#8277"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG><TT>role</TT></STRONG><DL>
-<DD><STRONG>winprop</STRONG> : <A HREF="node4.html#1474"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
+<DD><STRONG>winprop</STRONG> : <A HREF="node4.html#1482"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN></A>
</DL>
<DD><STRONG>root window</STRONG>
: <A HREF="node3.html#331"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>X</STRONG> : <A HREF="node3.html#332"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
</DL>
<DD><STRONG><TT>screen_managed_changed_hook</TT></STRONG>
- : <A HREF="node7.html#8258"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
+ : <A HREF="node7.html#8276"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG><SPAN CLASS="textbf">ScrollLock</SPAN></STRONG>
: <A HREF="node4.html#886"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><SPAN CLASS="textbf">Shift</SPAN></STRONG>
: <A HREF="node4.html#878"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><TT>statusbar</TT></STRONG>
- : <A HREF="node4.html#1459"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+ : <A HREF="node4.html#1467"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG>style</STRONG>
- : <A HREF="node5.html#1887"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node5.html#1905"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>submenu</TT></STRONG>
: <A HREF="node4.html#1200"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>substyle</STRONG>
- : <A HREF="node5.html#1900"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node5.html#1918"><SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>switchto</TT></STRONG>
- : <A HREF="node4.html#1460"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+ : <A HREF="node4.html#1468"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><SPAN CLASS="textit">system.mk</SPAN></STRONG>
: <A HREF="node4.html#584"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG><TT>target</TT></STRONG>
- : <A HREF="node4.html#1461"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+ : <A HREF="node4.html#1469"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><TT>tiling_placement_alt</TT></STRONG>
- : <A HREF="node7.html#8256"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
+ : <A HREF="node7.html#8274"><SPAN CLASS="arabic">6</SPAN>.<SPAN CLASS="arabic">9</SPAN></A>
<DD><STRONG>transient</STRONG>
- : <A HREF="node4.html#1432"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
+ : <A HREF="node4.html#1439"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
<DD><STRONG><TT>transient_mode</TT></STRONG>
- : <A HREF="node4.html#1462"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+ : <A HREF="node4.html#1470"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><TT>transparent</TT></STRONG>
- : <A HREF="node4.html#1463"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
+ : <A HREF="node4.html#1471"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG><TT>userpos</TT></STRONG>
- : <A HREF="node4.html#1472"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
+ : <A HREF="node4.html#1480"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>WClientWin</STRONG>
: <A HREF="node3.html#412"><SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">2</SPAN>.<SPAN CLASS="arabic">1</SPAN></A>
<DD><STRONG>WEdln</STRONG>
<DD><STRONG><SPAN CLASS="textit">xmodmap</SPAN></STRONG>
: <A HREF="node4.html#884"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN></A>
<DD><STRONG>xprop</STRONG>
- : <A HREF="node4.html#1428"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
+ : <A HREF="node4.html#1435"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN></A>
</DL>
The command line arguments were: <BR>
<STRONG>latex2html</STRONG> <TT>-show_section_numbers -short_index -local_icons -noaddress -up_url http://iki.fi/tuomov/ion/ -up_title 'Ion homepage' -nofootnode -split 3 ionconf</TT>
<P>
-The translation was initiated by tuomov on 2007-07-08
+The translation was initiated by tuomov on 2007-07-20
<BR><HR>
</BODY>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1451"></A>
+<DD><A NAME="1458"></A>
Set this to <TT>true</TT> for Acrobat Reader. It has an annoying
habit of trying to manage its dialogs instead of setting them as
transients and letting the window manager do its job, causing
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1452"></A>
+<DD><A NAME="1459"></A>
Set this to open the window in a floating frame, when
in a group.
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1453"></A>
+<DD><A NAME="1460"></A>
Should the window be initially in full screen mode?
</DD>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1454"></A>
+<DD><A NAME="1461"></A>
Should configure requests on the window be ignored?
Only has effect on floating windows.
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1455"></A>
+<DD><A NAME="1462"></A>
Ignore extended WM hints <TT>_NET_ACTIVE_WINDOW</TT> request.
</DD>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1456"></A>
+<DD><A NAME="1463"></A>
Should a newly created client window always be made
active, even if the allocated frame isn't.
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1457"></A>
+<DD><A NAME="1464"></A>
If the region specified by <TT>target</TT> winprop does not exist
(or that winprop is not set), create a new workspace using the
previously stored layout (see <A HREF="node7.html#fn:ioncore.deflayout"><TT>ioncore.deflayout</TT></A>) named by
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1458"></A>
+<DD><A NAME="1465"></A>
Discard this winprop after first use.
</DD>
</DL>
+<P>
+
+ <DL>
+<DT><STRONG>Winprop:</STRONG></DT>
+<DD><TT>orientation</TT> (string)
+
+</DD>
+<DT><STRONG>Description:</STRONG></DT>
+<DD><A NAME="1466"></A>
+ The orientation of the window: one of `<TT>vertical</TT>' or
+ `<TT>horizontal</TT>'. This is only useful when using the
+ window as a status display.
+
+</DD>
+</DL>
+
<P>
<DL>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1459"></A>
+<DD><A NAME="1467"></A>
Put the window in the statusbar, in the named tray component,
(The default tray component is called simply `<TT>systray</TT>',
and others you give names to in your custom template, always
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1460"></A>
+<DD><A NAME="1468"></A>
Should a newly mapped client window be switched to within
its frame.
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1461"></A>
+<DD><A NAME="1469"></A>
The name of an object (workspace, frame) that should manage
windows of this type. See also <TT>new_group</TT>.
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1462"></A>
+<DD><A NAME="1470"></A>
`<TT>normal</TT>': No change in behaviour. `<TT>current</TT>':
The window should be thought of as a transient for the current
active client window (if any) even if it is not marked as a
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1463"></A>
+<DD><A NAME="1471"></A>
Should frames be made transparent when this window is selected?
<BR>
<P>
Additionally, the winprops
-<TT>max_size</TT><A NAME="1464"></A>,
-<TT>min_size</TT><A NAME="1465"></A>,
-<TT>aspect</TT><A NAME="1466"></A>,
-<TT>resizeinc</TT><A NAME="1467"></A>,
+<TT>max_size</TT><A NAME="1472"></A>,
+<TT>min_size</TT><A NAME="1473"></A>,
+<TT>aspect</TT><A NAME="1474"></A>,
+<TT>resizeinc</TT><A NAME="1475"></A>,
and
-<TT>ignore_max_size</TT><A NAME="1468"></A>,
-<TT>ignore_min_size</TT><A NAME="1469"></A>,
-<TT>ignore_aspect</TT><A NAME="1470"></A>,
-<TT>ignore_resizeinc</TT><A NAME="1471"></A>,
+<TT>ignore_max_size</TT><A NAME="1476"></A>,
+<TT>ignore_min_size</TT><A NAME="1477"></A>,
+<TT>ignore_aspect</TT><A NAME="1478"></A>,
+<TT>ignore_resizeinc</TT><A NAME="1479"></A>,
may be used to override application-supplied size hints. The four
first ones are tables with the fields <TT>w</TT> and <TT>h</TT>, indicating
the width and height size hints in pixels, and the latter ignore
<P>
Finally, the boolean
-<TT>userpos</TT><A NAME="1472"></A> option may be used to
+<TT>userpos</TT><A NAME="1480"></A> option may be used to
override the <TT>USPosition</TT> flag of the size hints. Normally,
when this flag is set, Ion tries to respect the supplied window
position more than when it is not set. Obviously, this makes sense
<P>
The identification information supported are
-<TT>class</TT><A NAME="1473"></A>,
-<TT>role</TT><A NAME="1474"></A>,
-<TT>instance</TT><A NAME="1475"></A>,
-<TT>name</TT><A NAME="1476"></A>,
-<TT>is_transient</TT><A NAME="1477"></A>, and
-<TT>is_dockapp</TT><A NAME="1478"></A>.
+<TT>class</TT><A NAME="1481"></A>,
+<TT>role</TT><A NAME="1482"></A>,
+<TT>instance</TT><A NAME="1483"></A>,
+<TT>name</TT><A NAME="1484"></A>,
+<TT>is_transient</TT><A NAME="1485"></A>, and
+<TT>is_dockapp</TT><A NAME="1486"></A>.
It is not necessary to specify all of these fields.
The first three are strings, and must exactly match the
corresponding information obtained from the window's properties.
for a window and all the transient windows managed within it.
<P>
-<A NAME="1428"></A>
+<A NAME="1435"></A>
Another way to get the identification information is to use <TT>xprop</TT>.
Simply run To get class and instance, simply run <TT>xprop WM_CLASS</TT>
and click on the particular window of interest. The class is the latter of
This method, however, will not work on transients.
<P>
-<A NAME="1432"></A>
+<A NAME="1439"></A>
So-called ``transient windows'' are usually short-lived dialogs (although
some programs abuse this property) that have a parent window that they are
``transient for''. On tiled workspaces Ion displays these windows
returning the parent window's properties when the transient is clicked on.
For this reason you'll have to do a little extra work to get the properties
for that window.<A NAME="tex2html9"
- HREF="#foot1480"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></SUP></A>
+ HREF="#foot1488"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></SUP></A>
<P>
Finally, it should be mentioned that too many authors these days
``forget'' to set this vital identification to anything meaningful:
gotten rid of in the author's opinion.
</DD>
-<DT><A NAME="foot1480">... window.</A><A
+<DT><A NAME="foot1488">... window.</A><A
HREF="node4.html#tex2html9"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></SUP></A></DT>
<DD>There's a patch to <TT>xprop</TT> to
fix this, but nothing seems to be happening with respect to including it in
<P>
<H2><A NAME="SECTION00510000000000000000"></A>
-<A NAME="sec:engines"></A><A NAME="1887"></A><A NAME="1888"></A>
+<A NAME="sec:engines"></A><A NAME="1905"></A><A NAME="1906"></A>
<BR>
<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> Drawing engines, style specifications and sub-styles
</H2>
<PRE>
attr1-attr2-...-attrn
</PRE>
-These extra attributes are called <SPAN CLASS="textit">substyles</SPAN><A NAME="1900"></A>
+These extra attributes are called <SPAN CLASS="textit">substyles</SPAN><A NAME="1918"></A>
and allow, for example, the state of the object to be indicated
by different colour sets while keeping the interface at an
abstract level and the drawing engine completely ignorant
<P>
-<DIV ALIGN="CENTER"><A NAME="fig:borders"></A><A NAME="2003"></A>
+<DIV ALIGN="CENTER"><A NAME="fig:borders"></A><A NAME="2021"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 4.1:</STRONG>
Sketch of different border styles and elements</CAPTION>
<P>
Note that many of the hooks are called in ``protected mode'' and can not
-use any functions that modify Ion's internal state. TODO: More detailed
-documentation when this is final.
+use any functions that modify Ion's internal state.
<P>
<P>
<DL>
-<DD><A NAME="8246"></A>
+<DD><A NAME="8264"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="8247"></A>
+<DD><A NAME="8265"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="8248"></A>
+<DD><A NAME="8266"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="8249"></A>
+<DD><A NAME="8267"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="8250"></A>
+<DD><A NAME="8268"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="8251"></A>
+<DD><A NAME="8269"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="8252"></A>
+<DD><A NAME="8270"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="8253"></A>
+<DD><A NAME="8271"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="8254"></A>
+<DD><A NAME="8272"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="8255"></A>
+<DD><A NAME="8273"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="8256"></A>
+<DD><A NAME="8274"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="8257"></A>
+<DD><A NAME="8275"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="8258"></A>
+<DD><A NAME="8276"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
<P>
<DL>
-<DD><A NAME="8259"></A>
+<DD><A NAME="8277"></A>
</DD>
<DT><STRONG>Hook name:</STRONG></DT>
The command line arguments were: <BR>
<STRONG>latex2html</STRONG> <TT>-show_section_numbers -short_index -local_icons -noaddress -up_url http://iki.fi/tuomov/ion/ -up_title 'Ion homepage' -nofootnode -split 4 ionnotes</TT>
<P>
-The translation was initiated by tuomov on 2007-07-08
+The translation was initiated by tuomov on 2007-07-20
<BR><HR>
</BODY>
handlers do. The types of parameters for each hook are listed in
the hook reference, section \ref{sec:hookref}.
-
Note that many of the hooks are called in ``protected mode'' and can not
-use any functions that modify Ion's internal state. TODO: More detailed
-documentation when this is final.
+use any functions that modify Ion's internal state.
+
\section{Referring to regions}
Context:
-[TAG ion-3rc-20070708
-Tuomo Valkonen <tuomov@iki.fi>**20070708093638]
+[TAG ion-3rc-20070720
+Tuomo Valkonen <tuomov@iki.fi>**20070720135512]
static void clientwin_get_winprops(WClientWin *cwin)
{
ExtlTab tab, tab2;
+ char *s;
int i1, i2;
tab=ioncore_get_winprop(cwin);
if(extl_table_is_bool_set(tab, "ignore_cfgrq"))
cwin->flags|=CLIENTWIN_PROP_IGNORE_CFGRQ;
-#if 0
- cwin->szplcy=get_sizepolicy_winprop(cwin, "sizepolicy",
- SIZEPOLICY_DEFAULT);
- cwin->transient_szplcy=get_sizepolicy_winprop(cwin,
- "transient_sizepolicy",
- DFLT_SZPLCY);
-#endif
+ if(extl_table_gets_s(tab, "orientation", &s)){
+ if(strcmp(s, "vertical")==0)
+ cwin->flags|=CLIENTWIN_PROP_O_VERT;
+ else if(strcmp(s, "horizontal")==0)
+ cwin->flags|=CLIENTWIN_PROP_O_HORIZ;
+ free(s);
+ }
}
}
+static int clientwin_orientation(WClientWin *cwin)
+{
+ return (cwin->flags&CLIENTWIN_PROP_O_VERT
+ ? REGION_ORIENTATION_VERTICAL
+ : (cwin->flags&CLIENTWIN_PROP_O_HORIZ
+ ? REGION_ORIENTATION_HORIZONTAL
+ : REGION_ORIENTATION_NONE));
+}
+
+
/*}}}*/
{region_size_hints,
clientwin_size_hints},
+
+ {(DynFun*)region_orientation,
+ (DynFun*)clientwin_orientation},
{(DynFun*)region_rqclose,
(DynFun*)clientwin_rqclose},
#define CLIENTWIN_FS_RQ 0x20000
#define CLIENTWIN_UNMAP_RQ 0x40000
#define CLIENTWIN_NEED_CFGNTFY 0x80000
-
+#define CLIENTWIN_PROP_O_VERT 0x100000
+#define CLIENTWIN_PROP_O_HORIZ 0x200000
DECLCLASS(WClientWin){
WRegion region;
STACKING_LEVEL_ON_TOP,
szplcy);
}
-
+
+ stdisp->flags|=REGION_SKIP_FOCUS;
+
fp.g=REGION_GEOM(ws);
sizepolicy(&ws->managed_stdisp->szplcy, stdisp, NULL, 0, &fp);
if(p->brush==NULL)
goto fail3;
- p->wwin.region.flags|=REGION_SKIP_FOCUS;
-
/* Enable save unders */
attr.save_under=True;
XChangeWindowAttributes(ioncore_g.dpy, p->wwin.win, CWSaveUnder, &attr);
}
+void mplex_set_szplcy(WMPlex *mplex, WRegion *sub, WSizePolicy szplcy)
+{
+ WStacking *node;
+
+ node=mplex_find_stacking(mplex, sub);
+
+ if(node!=NULL)
+ node->szplcy=szplcy;
+}
+
+
+WSizePolicy mplex_get_szplcy(WMPlex *mplex, WRegion *sub)
+{
+ WStacking *node;
+
+ node=mplex_find_stacking(mplex, sub);
+
+ return (node==NULL ? SIZEPOLICY_DEFAULT : node->szplcy);
+}
+
+
/*}}}*/
region_set_manager(reg, (WRegion*)mplex);
+ if(param->flags&MPLEX_ATTACH_PASSIVE)
+ reg->flags|=REGION_SKIP_FOCUS;
+
if(!(param->flags&MPLEX_ATTACH_WHATEVER)){
WFitParams fp;
if(extl_table_is_bool_set(tab, "hidden"))
par->flags|=MPLEX_ATTACH_HIDDEN&ok;
+ if(extl_table_is_bool_set(tab, "passive"))
+ par->flags|=MPLEX_ATTACH_PASSIVE&ok;
+
if(extl_table_is_bool_set(tab, "pseudomodal"))
par->flags|=MPLEX_ATTACH_PSEUDOMODAL&ok;
* \var{hidden} & (boolean) Attach hidden, if not prevented
* by e.g. the mutually exclusive list being empty.
* This option overrides \var{switchto}. \\
+ * \var{passive} & (boolean) Skip in certain focusing operations. \\
* \var{pseudomodal} & (boolean) The attached region is ``pseudomodal''
* if the stacking level dictates it to be modal.
* This means that the region may be hidden to display
#define MPLEX_ATTACH_SIZEPOLICY 0x0040 /* size policy field is set */
#define MPLEX_ATTACH_INDEX 0x0080 /* index field is set */
#define MPLEX_ATTACH_WHATEVER 0x0100 /* set REGION_FIT_WHATEVER */
+#define MPLEX_ATTACH_PASSIVE 0x0200 /* sets SKIP_FOCUS */
enum{
extern void mplex_remanage_stdisp(WMPlex *mplex);
+/* Note: only the size policy field is changed; actual geometry is not
+ * yet changed.
+ */
+extern void mplex_set_szplcy(WMPlex *mplex, WRegion *sub, WSizePolicy szplcy);
+extern WSizePolicy mplex_get_szplcy(WMPlex *mplex, WRegion *sub);
+
/* Dynfuns */
DYNFUN void mplex_managed_geom(const WMPlex *mplex, WRectangle *geom);
if(!ioncore_g.use_mb){
Status st=XTextPropertyToStringList(&prop, &list, &n);
- ok=(st==0);
+ ok=(st!=0);
}else{
int st=XmbTextPropertyToTextList(ioncore_g.dpy, &prop, &list, &n);
ok=(st>=0);
reg->manager=NULL;
+ /* Reset status, as it is set by manager */
+ reg->flags&=~REGION_SKIP_FOCUS;
+
if(region_is_activity_r(reg))
region_clear_mgd_activity(mgr);
param.flags=(MPLEX_ATTACH_UNNUMBERED|
MPLEX_ATTACH_SIZEPOLICY|
MPLEX_ATTACH_GEOM|
- MPLEX_ATTACH_LEVEL);
+ MPLEX_ATTACH_LEVEL|
+ MPLEX_ATTACH_PASSIVE);
param.level=STACKING_LEVEL_ON_TOP;
param.geom.x=0;
}
-static void calc_dock_pos(WRectangle *dg, const WRectangle *pg, int pos)
-{
- switch(pos&DOCK_HPOS_MASK){
- case DOCK_HPOS_LEFT:
- dg->x=pg->x;
- break;
- case DOCK_HPOS_CENTER:
- dg->x=pg->x+(pg->w-dg->w)/2;
- break;
- case DOCK_HPOS_RIGHT:
- dg->x=pg->x+(pg->w-dg->w);
- break;
- }
-
- switch(pos&DOCK_VPOS_MASK){
- case DOCK_VPOS_TOP:
- dg->y=pg->y;
- break;
- case DOCK_VPOS_MIDDLE:
- dg->y=pg->y+(pg->h-dg->h)/2;
- break;
- case DOCK_VPOS_BOTTOM:
- dg->y=pg->y+(pg->h-dg->h);
- break;
- }
-}
-
-
static void dock_set_minmax(WDock *dock, int grow, const WRectangle *g)
{
dock->min_w=g->w;
dock_geom.w=tile_size.w;
dock_geom.h=tile_size.h;
}
+
+ border_dock_geom.x=REGION_GEOM(dock).x;
+ border_dock_geom.y=REGION_GEOM(dock).y;
border_dock_geom.w=dock_bdw.left+dock_geom.w+dock_bdw.right;
border_dock_geom.h=dock_bdw.top+dock_geom.h+dock_bdw.bottom;
- calc_dock_pos(&border_dock_geom, &parent_geom, pos);
-
/* Fit dock to new geom if required */
if(!(flags®ION_RQGEOM_TRYONLY)){
WRQGeomParams rq=RQGEOMPARAMS_INIT;
else
*mpos=p;
}
+
+
+static void mplexszplcy(int pos, WSizePolicy *szplcy)
+{
+ int hp=pos&DOCK_HPOS_MASK, vp=pos&DOCK_VPOS_MASK;
+ WSizePolicy p;
+
+ p=(vp!=DOCK_VPOS_MIDDLE
+ ? (vp==DOCK_VPOS_TOP
+ ? (hp!=DOCK_HPOS_CENTER
+ ? (hp==DOCK_HPOS_RIGHT
+ ? SIZEPOLICY_GRAVITY_NORTHEAST
+ : SIZEPOLICY_GRAVITY_NORTHWEST)
+ : SIZEPOLICY_GRAVITY_NORTH)
+ : (hp!=DOCK_HPOS_CENTER
+ ? (hp==DOCK_HPOS_RIGHT
+ ? SIZEPOLICY_GRAVITY_SOUTHEAST
+ : SIZEPOLICY_GRAVITY_SOUTHWEST)
+ : SIZEPOLICY_GRAVITY_SOUTH))
+ : SIZEPOLICY_GRAVITY_CENTER);
+
+ *szplcy=p;
+}
static void dock_do_set(WDock *dock, ExtlTab conftab, bool resize)
dock_managed_rqgeom_(dock, NULL, 0, NULL, NULL, TRUE);
}
mplex_set_stdisp(par, (WRegion*)dock, &din);
+ }else if((WRegion*)par==REGION_MANAGER(dock)){
+ WSizePolicy szplcy;
+ mplexszplcy(dock->pos, &szplcy);
+ mplex_set_szplcy(par, (WRegion*)dock, szplcy);
}
}
region_add_bindmap((WRegion*)dock, dock_bindmap);
- ((WRegion*)dock)->flags|=REGION_SKIP_FOCUS;
-
window_select_input(&(dock->win), IONCORE_EVENTMASK_CWINMGR);
dock_brush_get(dock);
WDock *dock=NULL;
WRegion *stdisp=NULL;
WMPlexSTDispInfo din;
+ WFitParams fp;
if(extl_table_gets_s(tab, "mode", &mode)){
if(strcmp(mode, "floating")==0){
}
/* Create the dock */
-
- if(floating){
- WMPlexAttachParams par;
-
- par.flags=(MPLEX_ATTACH_UNNUMBERED
- |MPLEX_ATTACH_SIZEPOLICY
- |MPLEX_ATTACH_GEOM);
-
- par.szplcy=SIZEPOLICY_FREE;
- par.geom.x=0;
- par.geom.y=0;
- par.geom.w=1;
- par.geom.h=1;
-
- if(extl_table_is_bool_set(tab, "floating_hidden"))
- par.flags|=MPLEX_ATTACH_HIDDEN;
-
- dock=(WDock*)mplex_do_attach_new((WMPlex*)screen, &par,
- (WRegionCreateFn*)create_dock,
- NULL);
- }else{
- WFitParams fp;
-
- fp.mode=REGION_FIT_BOUNDS|REGION_FIT_WHATEVER;
- fp.g.x=0;
- fp.g.y=0;
- fp.g.w=1;
- fp.g.h=1;
+ fp.mode=REGION_FIT_BOUNDS|REGION_FIT_WHATEVER;
+ fp.g.x=0;
+ fp.g.y=0;
+ fp.g.w=1;
+ fp.g.h=1;
- dock=create_dock((WWindow*)screen, &fp);
- }
+ dock=create_dock((WWindow*)screen, &fp);
if(dock==NULL){
warn("Failed to create dock.");
return NULL;
}
+
/* Get parameters */
dock->save=FALSE;
dock_do_set(dock, tab, FALSE);
+ /* Calculate min/max size */
+ dock_managed_rqgeom_(dock, NULL, 0, NULL, NULL, TRUE);
+
/* Final setup */
if(floating){
- WRQGeomParams rq=RQGEOMPARAMS_INIT;
const WRectangle *pg=®ION_GEOM(screen);
+ WMPlexAttachParams par=MPLEXATTACHPARAMS_INIT;
+ WRegionAttachData data;
- /* Just calculate real min/max size */
- dock_managed_rqgeom_(dock, NULL, 0, NULL, NULL, TRUE);
+ par.flags=(MPLEX_ATTACH_UNNUMBERED
+ |MPLEX_ATTACH_SIZEPOLICY
+ |MPLEX_ATTACH_GEOM
+ |MPLEX_ATTACH_PASSIVE);
- rq.geom.w=minof(dock->min_w, pg->w);
- rq.geom.h=minof(dock->min_h, pg->h);
- calc_dock_pos(&rq.geom, pg, dock->pos);
+ par.geom.w=dock->min_w;
+ par.geom.h=dock->min_h;
+ par.geom.x=0;
+ par.geom.y=0;
- region_rqgeom((WRegion*)dock, &rq, NULL);
+ mplexszplcy(dock->pos, &par.szplcy);
- return dock;
+ if(extl_table_is_bool_set(tab, "floating_hidden"))
+ par.flags|=MPLEX_ATTACH_HIDDEN;
+
+ data.type=REGION_ATTACH_REPARENT;
+ data.u.reg=(WRegion*)dock;
+
+ if(mplex_do_attach((WMPlex*)screen, &par, &data))
+ return dock;
}else{
mplexpos(dock->pos, &din.pos);
din.fullsize=FALSE; /* not supported */
region_add_bindmap((WRegion*)p, mod_statusbar_statusbar_bindmap);
- ((WRegion*)p)->flags|=REGION_SKIP_FOCUS;
-
LINK_ITEM(statusbars, p, sb_next, sb_prev);
return TRUE;
if(!window_init(&(pwin->wwin), parent, fp))
return FALSE;
- ((WRegion*)pwin)->flags|=REGION_SKIP_FOCUS;
-
panehandle_getbrush(pwin);
if(pwin->brush==NULL){
return FALSE;
}
+ ((WRegion*)split->brpwin)->flags|=REGION_SKIP_FOCUS;
+ ((WRegion*)split->tlpwin)->flags|=REGION_SKIP_FOCUS;
+
if(!splitsplit_init(&(split->ssplit), geom, dir)){
destroy_obj((Obj*)split->brpwin);
destroy_obj((Obj*)split->tlpwin);
tiling_unmanage_stdisp(ws, TRUE, TRUE);
return;
}
+
+ stdisp->flags|=REGION_SKIP_FOCUS;
dg=((WSplit*)(ws->stdispnode))->geom;
-#define ION_VERSION "3rc-20070708"
+#define ION_VERSION "3rc-20070720"
#define ION_API_VERSION "3"