Index: Headers/x11/XGGeneric.h
===================================================================
RCS file: /cvsroot/gnustep/gnustep/core/back/Headers/x11/XGGeneric.h,v
retrieving revision 1.4
diff -u -r1.4 XGGeneric.h
--- Headers/x11/XGGeneric.h	5 Jul 2003 23:49:59 -0000	1.4
+++ Headers/x11/XGGeneric.h	10 Jan 2004 19:42:37 -0000
@@ -76,6 +76,7 @@
   long			currentFocusWindow;
   long			desiredFocusWindow;
   unsigned long		focusRequestNumber;
+  unsigned long         desiredOrderedWindow;
   unsigned char		lMouse;
   unsigned char		mMouse;
   unsigned char		rMouse;
Index: Source/x11/XGServerEvent.m
===================================================================
RCS file: /cvsroot/gnustep/gnustep/core/back/Source/x11/XGServerEvent.m,v
retrieving revision 1.16
diff -u -r1.16 XGServerEvent.m
--- Source/x11/XGServerEvent.m	25 Nov 2003 19:16:34 -0000	1.16
+++ Source/x11/XGServerEvent.m	10 Jan 2004 19:42:38 -0000
@@ -1300,6 +1300,12 @@
       NSDebugLLog(@"Focus", @"Key window is already %d", key_num);
       [GSServerForWindow(key_win) setinputfocus: key_num];
     }
+  else if (generic.desiredOrderedWindow == cWin->number)
+    {
+      /* We just want to order the window, not give it focus */
+      NSDebugLLog(@"Focus", @"Ignoring focus request");
+      generic.desiredOrderedWindow = 0;
+    }
   else
     {
       NSPoint eventLocation;
Index: Source/x11/XGServerWindow.m
===================================================================
RCS file: /cvsroot/gnustep/gnustep/core/back/Source/x11/XGServerWindow.m,v
retrieving revision 1.35
2004-01-10  Adam Fedor  <[EMAIL PROTECTED]>

	* Prevent orderwindow:relativeTo: from making a window key.
	* Headers/x11/XGGeneric.h: Add Ivar.
	* Source/x11/XGServerEvent.m (-_handleTakeFocusAtom:forContext:): 
	Don't take focus if we ordered this window previously.
	* Source/x11/XGServerWindow.m ([XGServer -orderwindow:::]): 
	Set desiredOrderWindow.
	([XGServer -setinputfocus:]): Reset it.

diff -u -r1.35 XGServerWindow.m
--- Source/x11/XGServerWindow.m	19 Nov 2003 16:05:29 -0000	1.35
+++ Source/x11/XGServerWindow.m	10 Jan 2004 19:42:42 -0000
@@ -1558,8 +1575,10 @@
   if (op != NSWindowOut && window->map_state != IsViewable)
     {
       XMoveWindow(dpy, window->ident, window->siz_hints.x,
-	window->siz_hints.y);
+      	window->siz_hints.y);
       setNormalHints(dpy, window);
+      /* Set this to ignore any take focus events for this window */
+      generic.desiredOrderedWindow = winNum;
     }
 
   switch (op)
@@ -2334,6 +2353,7 @@
   NSDebugLLog(@"Focus", @"Setting focus to %d", window->number);
   generic.desiredFocusWindow = win;
   generic.focusRequestNumber = XNextRequest(dpy);
+  generic.desiredOrderedWindow = 0;
   XSetInputFocus(dpy, window->ident, RevertToParent, generic.lastTime);
   [inputServer ximFocusICWindow: window];
 }
_______________________________________________
Bug-gnustep mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-gnustep

Reply via email to