[Xfce4-commits] r24169 - xfwm4/trunk/src

Olivier Fourdan olivier at xfce.org
Fri Dec 22 21:21:05 CET 2006


Author: olivier
Date: 2006-12-22 20:21:05 +0000 (Fri, 22 Dec 2006)
New Revision: 24169

Modified:
   xfwm4/trunk/src/client.h
   xfwm4/trunk/src/focus.c
Log:
Focus the internal fallback window when focus is transfered to a window that doesn't have InputHint set but still use WM_PROTOCOLS_TAKE_FOCUS (ie, there is no way for the window manager to tell whether or not the client will accept focus in the end since focus is set by the client alone through the 'take focus' mechanism) - Fix bug #1853 without breaking #2410

Modified: xfwm4/trunk/src/client.h
===================================================================
--- xfwm4/trunk/src/client.h	2006-12-22 18:52:40 UTC (rev 24168)
+++ xfwm4/trunk/src/client.h	2006-12-22 20:21:05 UTC (rev 24169)
@@ -198,10 +198,6 @@
 #define CLIENT_CAN_STICK_WINDOW(c)      (!(c->transient_for) && \
                                          FLAG_TEST(c->xfwm_flags, XFWM_FLAG_HAS_STICK))
 
-#define HINTS_ACCEPT_INPUT(wmhints)     (!(wmhints) || \
-                                         ((wmhints) && !(wmhints->flags & InputHint)) || \
-                                         ((wmhints) && (wmhints->flags & InputHint) && (wmhints->input)))
-
 typedef enum
 {
     UNSET = 0,

Modified: xfwm4/trunk/src/focus.c
===================================================================
--- xfwm4/trunk/src/focus.c	2006-12-22 18:52:40 UTC (rev 24168)
+++ xfwm4/trunk/src/focus.c	2006-12-22 20:21:05 UTC (rev 24169)
@@ -540,6 +540,12 @@
             }
             clientUpdateOpacity (screen_info, c);
         }
+        else if (!client_focus)
+        {
+            /* Hack to prevent loosing focus when all remaining windows won't accept focus, see bug #1853 */
+            XSetInputFocus (myScreenGetXDisplay (screen_info), screen_info->xfwm4_win, RevertToPointerRoot, timestamp);
+        }
+
         if (FLAG_TEST(c->wm_flags, WM_FLAG_TAKEFOCUS))
         {
             pending_focus = c;



More information about the Xfce4-commits mailing list