ALT Linux Bugzilla
– Attachment 2262 Details for
Bug 13388
xfwm4 виснет с GTK 2.12
New bug
|
Search
|
[?]
|
Help
Register
|
Log In
[x]
|
Forgot Password
Login:
[x]
|
EN
|
RU
[patch]
Патч из Дебиана
xfwm4-4.4.1-debian-fix-hang.patch (text/plain), 5.55 KB, created by
avm
on 2007-11-12 13:44:31 MSK
(
hide
)
Description:
Патч из Дебиана
Filename:
MIME Type:
Creator:
avm
Created:
2007-11-12 13:44:31 MSK
Size:
5.55 KB
patch
obsolete
>Index: xfwm4/src/display.c >=================================================================== >--- xfwm4/src/display.c (revision 25820) >+++ xfwm4/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: xfwm4/src/display.h >=================================================================== >--- xfwm4/src/display.h (revision 25820) >+++ xfwm4/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: xfwm4/src/client.c >=================================================================== >--- xfwm4/src/client.c (revision 25820) >+++ xfwm4/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: xfwm4/src/hints.c >=================================================================== >--- xfwm4/src/hints.c (revision 25820) >+++ xfwm4/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: xfwm4/src/hints.h >=================================================================== >--- xfwm4/src/hints.h (revision 25820) >+++ xfwm4/src/hints.h (working copy) >@@ -269,6 +269,7 @@ > int, > Window , > Window); >+void updateXserverTime (DisplayInfo *); > Time getXServerTime (DisplayInfo *); > > #ifdef ENABLE_KDE_SYSTRAY_PROXY
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 13388
: 2262