head 1.2; access; symbols pkgsrc-2013Q2:1.2.0.22 pkgsrc-2013Q2-base:1.2 pkgsrc-2012Q4:1.2.0.20 pkgsrc-2012Q4-base:1.2 pkgsrc-2011Q4:1.2.0.18 pkgsrc-2011Q4-base:1.2 pkgsrc-2011Q2:1.2.0.16 pkgsrc-2011Q2-base:1.2 pkgsrc-2009Q4:1.2.0.14 pkgsrc-2009Q4-base:1.2 pkgsrc-2008Q4:1.2.0.12 pkgsrc-2008Q4-base:1.2 pkgsrc-2008Q3:1.2.0.10 pkgsrc-2008Q3-base:1.2 cube-native-xorg:1.2.0.8 cube-native-xorg-base:1.2 pkgsrc-2008Q2:1.2.0.6 pkgsrc-2008Q2-base:1.2 pkgsrc-2008Q1:1.2.0.4 pkgsrc-2008Q1-base:1.2 pkgsrc-2007Q4:1.2.0.2 pkgsrc-2007Q4-base:1.2 pkgsrc-2007Q3:1.1.0.2 pkgsrc-2007Q3-base:1.1; locks; strict; comment @# @; 1.2 date 2007.12.07.19.43.24; author martti; state dead; branches; next 1.1; 1.1 date 2007.10.03.10.24.42; author martti; state Exp; branches; next ; desc @@ 1.2 log @Updated Xfce to 4.4.2 Lots of bug fixes. For the official ChangeLog, please see http://www.xfce.org/documentation/changelogs/4.4.2 @ text @$NetBSD: patch-ab,v 1.1 2007/10/03 10:24:42 martti Exp $ Index: src/display.c =================================================================== --- src/display.c (revision 25820) +++ src/display.c (working copy) @@@@ -178,6 +178,19 @@@@ FALSE, display_info->atoms) != 0); } +static void +myDisplayCreateTimestampWin (DisplayInfo *display_info) +{ + XSetWindowAttributes attributes; + + attributes.event_mask = PropertyChangeMask; + attributes.override_redirect = TRUE; + display_info->timestamp_win = + XCreateWindow (display_info->dpy, DefaultRootWindow (display_info->dpy), + -100, -100, 10, 10, 0, 0, CopyFromParent, CopyFromParent, + CWEventMask | CWOverrideRedirect, &attributes); +} + DisplayInfo * myDisplayInit (GdkDisplay *gdisplay) { @@@@ -309,6 +322,8 @@@@ display->resize_cursor[CORNER_COUNT + SIDE_BOTTOM] = XCreateFontCursor (display->dpy, XC_bottom_side); + myDisplayCreateTimestampWin (display); + display->xfilter = NULL; display->screens = NULL; display->clients = NULL; @@@@ -340,6 +355,8 @@@@ display->move_cursor = None; XFreeCursor (display->dpy, display->root_cursor); display->root_cursor = None; + XDestroyWindow (display->dpy, display->timestamp_win); + display->timestamp_win = None; if (display->hostname) { Index: src/display.h =================================================================== --- src/display.h (revision 25820) +++ src/display.h (working copy) @@@@ -226,6 +226,7 @@@@ gboolean quit; gboolean reload; + Window timestamp_win; Cursor busy_cursor; Cursor move_cursor; Cursor root_cursor; Index: src/client.c =================================================================== --- src/client.c (revision 25820) +++ src/client.c (working copy) @@@@ -4868,21 +4868,19 @@@@ if (passdata.c) { - GdkPixbuf *icon; - TRACE ("entering cycle loop"); passdata.wireframe = wireframeCreate (passdata.c); - icon = getAppIcon (display_info, passdata.c->window, 32, 32); passdata.tabwin = tabwinCreate (passdata.c->screen_info->gscr, c, passdata.c, passdata.cycle_range, screen_info->params->cycle_workspaces); eventFilterPush (display_info->xfilter, clientCycleEventFilter, &passdata); gtk_main (); eventFilterPop (display_info->xfilter); - wireframeDelete (screen_info, passdata.wireframe); TRACE ("leaving cycle loop"); tabwinDestroy (passdata.tabwin); g_free (passdata.tabwin); + wireframeDelete (screen_info, passdata.wireframe); + updateXserverTime (display_info); } if (passdata.c) Index: src/hints.c =================================================================== --- src/hints.c (revision 25820) +++ src/hints.c (working copy) @@@@ -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); + g_return_if_fail (display_info); - screen_info = myDisplayGetDefaultScreen (display_info); - g_return_val_if_fail (screen_info, FALSE); - - 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); } Index: src/hints.h =================================================================== --- src/hints.h (revision 25820) +++ src/hints.h (working copy) @@@@ -269,6 +269,7 @@@@ int, Window , Window); +void updateXserverTime (DisplayInfo *); Time getXServerTime (DisplayInfo *); #ifdef ENABLE_KDE_SYSTRAY_PROXY @ 1.1 log @Updated wm/xfce4-wm to 4.4.1nb1 Fix keyboard/mouse problems with gtk2 2.11 and later. http://bugzilla.xfce.org/show_bug.cgi?id=3346 @ text @d1 1 a1 1 $NetBSD$ @