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