Lines 1167-1193
Link Here
|
1167 |
return setXAtomManagerOwner(display_info, display_info->atoms[atom_id], root, w); |
1167 |
return setXAtomManagerOwner(display_info, display_info->atoms[atom_id], root, w); |
1168 |
} |
1168 |
} |
1169 |
|
1169 |
|
1170 |
|
1170 |
void |
1171 |
static Bool |
1171 |
updateXserverTime (DisplayInfo *display_info) |
1172 |
checkPropEvent (Display *display, XEvent *xevent, XPointer arg) |
|
|
1173 |
{ |
1172 |
{ |
1174 |
DisplayInfo *display_info; |
|
|
1175 |
ScreenInfo *screen_info; |
1173 |
ScreenInfo *screen_info; |
|
|
1174 |
char c = '\0'; |
1176 |
|
1175 |
|
1177 |
display_info = (DisplayInfo *) arg; |
1176 |
g_return_if_fail (display_info); |
1178 |
g_return_val_if_fail (display_info, FALSE); |
|
|
1179 |
|
1177 |
|
1180 |
screen_info = myDisplayGetDefaultScreen (display_info); |
1178 |
XChangeProperty (display_info->dpy, display_info->timestamp_win, |
1181 |
g_return_val_if_fail (screen_info, FALSE); |
1179 |
display_info->atoms[XFWM4_TIMESTAMP_PROP], |
1182 |
|
1180 |
display_info->atoms[XFWM4_TIMESTAMP_PROP], |
1183 |
if ((xevent->type == PropertyNotify) && |
1181 |
8, PropModeReplace, (unsigned char *) &c, 1); |
1184 |
(xevent->xproperty.window == screen_info->xfwm4_win) && |
|
|
1185 |
(xevent->xproperty.atom == display_info->atoms[XFWM4_TIMESTAMP_PROP])) |
1186 |
{ |
1187 |
return TRUE; |
1188 |
} |
1189 |
|
1190 |
return FALSE; |
1191 |
} |
1182 |
} |
1192 |
|
1183 |
|
1193 |
Time |
1184 |
Time |
Lines 1196-1202
Link Here
|
1196 |
ScreenInfo *screen_info; |
1187 |
ScreenInfo *screen_info; |
1197 |
XEvent xevent; |
1188 |
XEvent xevent; |
1198 |
Time timestamp; |
1189 |
Time timestamp; |
1199 |
char c = '\0'; |
|
|
1200 |
|
1190 |
|
1201 |
g_return_val_if_fail (display_info, (Time) CurrentTime); |
1191 |
g_return_val_if_fail (display_info, (Time) CurrentTime); |
1202 |
timestamp = myDisplayGetCurrentTime (display_info); |
1192 |
timestamp = myDisplayGetCurrentTime (display_info); |
Lines 1206-1217
Link Here
|
1206 |
g_return_val_if_fail (screen_info, (Time) CurrentTime); |
1196 |
g_return_val_if_fail (screen_info, (Time) CurrentTime); |
1207 |
|
1197 |
|
1208 |
TRACE ("getXServerTime: Using X server roundtrip"); |
1198 |
TRACE ("getXServerTime: Using X server roundtrip"); |
1209 |
XChangeProperty (display_info->dpy, screen_info->xfwm4_win, |
1199 |
updateXserverTime (display_info); |
1210 |
display_info->atoms[XFWM4_TIMESTAMP_PROP], |
1200 |
XWindowEvent (display_info->dpy, display_info->timestamp_win, PropertyChangeMask, &xevent); |
1211 |
display_info->atoms[XFWM4_TIMESTAMP_PROP], |
|
|
1212 |
8, PropModeReplace, (unsigned char *) &c, 1); |
1213 |
XIfEvent (display_info->dpy, &xevent, checkPropEvent, (XPointer) display_info); |
1214 |
|
1215 |
timestamp = (Time) myDisplayUpdateCurrentTime (display_info, &xevent); |
1201 |
timestamp = (Time) myDisplayUpdateCurrentTime (display_info, &xevent); |
1216 |
} |
1202 |
} |
1217 |
|
1203 |
|