[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