--- src/hints.c.orig 2007-03-11 14:44:43.000000000 +0100
+++ src/hints.c 2007-10-25 22:26:36.000000000 +0200
@@ -1167,27 +1167,18 @@
return setXAtomManagerOwner(display_info, display_info->atoms[atom_id], root, w);
}
-
-static Bool
-checkPropEvent (Display *display, XEvent *xevent, XPointer arg)
+void
+updateXserverTime (DisplayInfo *display_info)
{
- DisplayInfo *display_info;
ScreenInfo *screen_info;
+ char c = '\0';
- display_info = (DisplayInfo *) arg;
- g_return_val_if_fail (display_info, FALSE);
-
- screen_info = myDisplayGetDefaultScreen (display_info);
- g_return_val_if_fail (screen_info, FALSE);
+ g_return_if_fail (display_info);
- if ((xevent->type == PropertyNotify) &&
- (xevent->xproperty.window == screen_info->xfwm4_win) &&
- (xevent->xproperty.atom == display_info->atoms[XFWM4_TIMESTAMP_PROP]))
- {
- return TRUE;
- }
-
- return FALSE;
+ XChangeProperty (display_info->dpy, display_info->timestamp_win,
+ display_info->atoms[XFWM4_TIMESTAMP_PROP],
+ display_info->atoms[XFWM4_TIMESTAMP_PROP],
+ 8, PropModeReplace, (unsigned char *) &c, 1);
}
Time
@@ -1196,7 +1187,6 @@
ScreenInfo *screen_info;
XEvent xevent;
Time timestamp;
- char c = '\0';
g_return_val_if_fail (display_info, (Time) CurrentTime);
timestamp = myDisplayGetCurrentTime (display_info);
@@ -1206,12 +1196,8 @@
g_return_val_if_fail (screen_info, (Time) CurrentTime);
TRACE ("getXServerTime: Using X server roundtrip");
- XChangeProperty (display_info->dpy, screen_info->xfwm4_win,
- display_info->atoms[XFWM4_TIMESTAMP_PROP],
- display_info->atoms[XFWM4_TIMESTAMP_PROP],
- 8, PropModeReplace, (unsigned char *) &c, 1);
- XIfEvent (display_info->dpy, &xevent, checkPropEvent, (XPointer) display_info);
-
+ updateXserverTime (display_info);
+ XWindowEvent (display_info->dpy, display_info->timestamp_win, PropertyChangeMask, &xevent);
timestamp = (Time) myDisplayUpdateCurrentTime (display_info, &xevent);
}
syntax highlighted by Code2HTML, v. 0.9.1