Re: Focus stealing prevention



On Monday 06 of October 2003 18:41, Lubos Lunak wrote:
>  Hello,
>
> - net_restack_window.patch - as a part of focus stealing prevention, KWin
> also doesn't allow raising inactive windows on top if they do
> XRaiseWindow() etc. In order to recongnize configure requests from pagers,
> a new message is needed, instead of plain ConfigureRequest.

 Updated patch for this attached, as Rob Adams pointed out that I forgot to 
change some texts after doing copy&paste from _NET_CLOSE_WINDOW.

-- 
Lubos Lunak
KDE developer
---------------------------------------------------------------------
SuSE CR, s.r.o.  e-mail: l lunak suse cz , l lunak kde org
Drahobejlova 27  tel: +420 2 9654 2373
190 00 Praha 9   fax: +420 2 9654 2374
Czech Republic   http://www.suse.cz/
--- wm-spec.xml.sav	2003-10-06 18:11:34.000000000 +0200
+++ wm-spec.xml	2003-10-06 18:14:10.000000000 +0200
@@ -760,6 +760,35 @@ _NET_WM_MOVERESIZE
 	terminate the operation, e.g. by pressing the ESC key.  
         </para>
 	</sect2>
+	<sect2><title>_NET_RESTACK_WINDOW</title>
+	<programlisting><![CDATA[
+_NET_RESTACK_WINDOW
+]]></programlisting>
+	<para>
+	Pagers wanting to restack a window SHOULD send a _NET_RESTACK_WINDOW client
+	message request to the root window:
+	</para>
+<programlisting><![CDATA[
+_NET_RESTACK_WINDOW
+  window = window to restack
+  message_type = _NET_RESTACK_WINDOW
+  format = 32
+  data.l[0] = source indication
+  data.l[1] = sibling window
+  data.l[2] = detail
+  other data.l[] elements = 0
+]]></programlisting>
+	<para>
+        This request is similar to ConfigureRequest with CWSibling and CWStackMode flags. It should be used only by pagers,
+        applications can use normal ConfigureRequests. The source indication field should be therefore set to 1,
+        see <xref linkend="sourceindication"/> for details.
+	</para>
+	<para>
+	Rationale: A Window Manager may put restrictions on configure requests from applications, for example it may
+        under some conditions refuse to raise a window. This request makes it clear it comes from a pager or similar
+        tool, and therefore the Window Manager should always obey it.
+	</para>
+	</sect2>
 	</sect1>	
 	<sect1>
 	<title>Application Window Properties</title>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]