[Xfce4-commits] r29542 - in xfwm4/trunk: . src

Olivier Fourdan olivier at xfce.org
Mon Feb 23 11:06:53 CET 2009


Author: olivier
Date: 2009-02-23 10:06:52 +0000 (Mon, 23 Feb 2009)
New Revision: 29542

Modified:
   xfwm4/trunk/ChangeLog
   xfwm4/trunk/src/client.c
   xfwm4/trunk/src/client.h
   xfwm4/trunk/src/events.c
   xfwm4/trunk/src/focus.c
   xfwm4/trunk/src/netwm.c
   xfwm4/trunk/src/netwm.h
Log:
	* src/netwm.h, src/netwm.c, src/client.h, src/client.c, src/events.c,
	  src/focus.c: Capture user time at startup, a bit of refactoring to
	  avoid duplication of code (that led to this bug to remain after a
	  similar fix went previously in to events.c in revision 29456).

Modified: xfwm4/trunk/ChangeLog
===================================================================
--- xfwm4/trunk/ChangeLog	2009-02-23 09:08:34 UTC (rev 29541)
+++ xfwm4/trunk/ChangeLog	2009-02-23 10:06:52 UTC (rev 29542)
@@ -1,3 +1,10 @@
+2009-02-23	olivier
+
+	* src/netwm.h, src/netwm.c, src/client.h, src/client.c, src/events.c,
+	  src/focus.c: Capture user time at startup, a bit of refactoring to
+	  avoid duplication of code (that led to this bug to remain after a
+	  similar fix went previously in to events.c in revision 29456).
+
 2009-02-19	olivier
 
 	* src/events.c: Only release events on identified key shortcut

Modified: xfwm4/trunk/src/client.c
===================================================================
--- xfwm4/trunk/src/client.c	2009-02-23 09:08:34 UTC (rev 29541)
+++ xfwm4/trunk/src/client.c	2009-02-23 10:06:52 UTC (rev 29542)
@@ -1457,61 +1457,6 @@
 }
 
 static void
-clientGetUserTime (Client * c)
-{
-    ScreenInfo *screen_info;
-    DisplayInfo *display_info;
-
-    g_return_if_fail (c != NULL);
-    g_return_if_fail (c->window != None);
-
-    screen_info = c->screen_info;
-    display_info = screen_info->display_info;
-
-    if (getNetWMUserTime (display_info, c->window, &c->user_time) && (c->user_time != 0))
-    {
-        FLAG_SET (c->flags, CLIENT_FLAG_HAS_USER_TIME);
-        myDisplayUpdateLastUserTime (display_info, c->user_time);
-    }
-}
-
-void
-clientAddUserTimeWin (Client * c)
-{
-    ScreenInfo *screen_info;
-    DisplayInfo *display_info;
-
-    g_return_if_fail (c != NULL);
-    g_return_if_fail (c->window != None);
-
-    screen_info = c->screen_info;
-    display_info = screen_info->display_info;
-
-    if ((c->user_time_win != None) && (c->user_time_win != c->window))
-    {
-        XSelectInput (display_info->dpy, c->user_time_win, PropertyChangeMask);
-    }
-}
-
-void
-clientRemoveUserTimeWin (Client * c)
-{
-    ScreenInfo *screen_info;
-    DisplayInfo *display_info;
-
-    g_return_if_fail (c != NULL);
-    g_return_if_fail (c->window != None);
-
-    screen_info = c->screen_info;
-    display_info = screen_info->display_info;
-
-    if ((c->user_time_win != None) && (c->user_time_win != c->window))
-    {
-        XSelectInput (display_info->dpy, c->user_time_win, NoEventMask);
-    }
-}
-
-static void
 clientUpdateIconPix (Client * c)
 {
     ScreenInfo *screen_info;

Modified: xfwm4/trunk/src/client.h
===================================================================
--- xfwm4/trunk/src/client.h	2009-02-23 09:08:34 UTC (rev 29541)
+++ xfwm4/trunk/src/client.h	2009-02-23 10:06:52 UTC (rev 29542)
@@ -339,8 +339,6 @@
 void                     clientClearLastOpTime                  (Client *);
 void                     clientUpdateWinState                   (Client *,
                                                                  XClientMessageEvent *);
-void                     clientAddUserTimeWin                   (Client *);
-void                     clientRemoveUserTimeWin                (Client *);
 void                     clientUpdateUrgency                    (Client *);
 void                     clientCoordGravitate                   (Client *,
                                                                  int,

Modified: xfwm4/trunk/src/events.c
===================================================================
--- xfwm4/trunk/src/events.c	2009-02-23 09:08:34 UTC (rev 29541)
+++ xfwm4/trunk/src/events.c	2009-02-23 10:06:52 UTC (rev 29542)
@@ -1832,16 +1832,7 @@
         else if (ev->atom == display_info->atoms[NET_WM_USER_TIME])
         {
             TRACE ("client \"%s\" (0x%lx) has received a NET_WM_USER_TIME notify", c->name, c->window);
-            /*
-             * We can use "c->user_time_win" safely here because this will be
-             * the same as "c->window" if the app does not support the protocol
-             * NET_WM_USER_TIME_WINDOW
-             */
-            if (getNetWMUserTime (display_info, c->user_time_win, &c->user_time) && (c->user_time != 0))
-            {
-                myDisplaySetLastUserTime (display_info, c->user_time);
-                FLAG_SET (c->flags, CLIENT_FLAG_HAS_USER_TIME);
-            }
+            clientGetUserTime (c);
         }
         else if (ev->atom == display_info->atoms[NET_WM_USER_TIME_WINDOW])
         {

Modified: xfwm4/trunk/src/focus.c
===================================================================
--- xfwm4/trunk/src/focus.c	2009-02-23 09:08:34 UTC (rev 29541)
+++ xfwm4/trunk/src/focus.c	2009-02-23 10:06:52 UTC (rev 29542)
@@ -185,11 +185,11 @@
         }
         else if (FLAG_TEST (c->flags, CLIENT_FLAG_HAS_STARTUP_TIME | CLIENT_FLAG_HAS_USER_TIME))
         {
+            TRACE ("Current time is %u, time for \"%s\" is %u",
+                   (unsigned int) client_focus->user_time,
+                   c->name, (unsigned int) c->user_time);
             if (TIMESTAMP_IS_BEFORE (c->user_time, client_focus->user_time))
             {
-                TRACE ("Current time is %u, new time is %u, not focusing \"%s\" \n",
-                       (unsigned int) client_focus->user_time,
-                       (unsigned int) c->user_time, c->name);
                 give_focus = FALSE;
                 prevented = TRUE;
             }

Modified: xfwm4/trunk/src/netwm.c
===================================================================
--- xfwm4/trunk/src/netwm.c	2009-02-23 09:08:34 UTC (rev 29541)
+++ xfwm4/trunk/src/netwm.c	2009-02-23 10:06:52 UTC (rev 29542)
@@ -1446,3 +1446,68 @@
                             (gpointer) c, NULL);
     return (TRUE);
 }
+
+gboolean
+clientGetUserTime (Client * c)
+{
+    ScreenInfo *screen_info;
+    DisplayInfo *display_info;
+
+    g_return_val_if_fail (c != NULL, FALSE);
+    g_return_val_if_fail (c->window != None, FALSE);
+
+    screen_info = c->screen_info;
+    display_info = screen_info->display_info;
+
+    /*
+     * We can use "c->user_time_win" safely here because this will be
+     * the same as "c->window" if the app does not support the protocol
+     * NET_WM_USER_TIME_WINDOW
+     */
+
+    if (getNetWMUserTime (display_info, c->user_time_win, &c->user_time) && (c->user_time != 0))
+    {
+        myDisplaySetLastUserTime (display_info, c->user_time);
+        FLAG_SET (c->flags, CLIENT_FLAG_HAS_USER_TIME);
+
+        return TRUE;
+    }
+
+    return FALSE;
+}
+
+void
+clientAddUserTimeWin (Client * c)
+{
+    ScreenInfo *screen_info;
+    DisplayInfo *display_info;
+
+    g_return_if_fail (c != NULL);
+    g_return_if_fail (c->window != None);
+
+    screen_info = c->screen_info;
+    display_info = screen_info->display_info;
+
+    if ((c->user_time_win != None) && (c->user_time_win != c->window))
+    {
+        XSelectInput (display_info->dpy, c->user_time_win, PropertyChangeMask);
+    }
+}
+
+void
+clientRemoveUserTimeWin (Client * c)
+{
+    ScreenInfo *screen_info;
+    DisplayInfo *display_info;
+
+    g_return_if_fail (c != NULL);
+    g_return_if_fail (c->window != None);
+
+    screen_info = c->screen_info;
+    display_info = screen_info->display_info;
+
+    if ((c->user_time_win != None) && (c->user_time_win != c->window))
+    {
+        XSelectInput (display_info->dpy, c->user_time_win, NoEventMask);
+    }
+}

Modified: xfwm4/trunk/src/netwm.h
===================================================================
--- xfwm4/trunk/src/netwm.h	2009-02-23 09:08:34 UTC (rev 29541)
+++ xfwm4/trunk/src/netwm.h	2009-02-23 10:06:52 UTC (rev 29542)
@@ -55,10 +55,13 @@
 void                     clientSetNetActiveWindow               (ScreenInfo *,
                                                                  Client *,
                                                                  guint32);
-void                    clientRemoveNetWMPing                   (Client *);
-gboolean                clientSendNetWMPing                     (Client *,
+void                     clientRemoveNetWMPing                  (Client *);
+gboolean                 clientSendNetWMPing                    (Client *,
                                                                  guint32);
-void                    clientReceiveNetWMPong                  (ScreenInfo *,
+void                     clientReceiveNetWMPong                 (ScreenInfo *,
                                                                  guint32);
+gboolean                 clientGetUserTime                      (Client *);
+void                     clientAddUserTimeWin                   (Client *);
+void                     clientRemoveUserTimeWin                (Client *);
 
 #endif /* INC_NETWM_H */




More information about the Xfce4-commits mailing list