[Xfce4-commits] r29493 - in xfwm4/trunk: . src
Olivier Fourdan
olivier at xfce.org
Mon Feb 16 12:11:28 CET 2009
Author: olivier
Date: 2009-02-16 11:11:27 +0000 (Mon, 16 Feb 2009)
New Revision: 29493
Modified:
xfwm4/trunk/ChangeLog
xfwm4/trunk/NEWS
xfwm4/trunk/src/client.c
xfwm4/trunk/src/events.c
Log:
* src/events.c, src/client.c: Fix ICCCM synthetic unmap notify
handling causing a race condition with amule when started hidden
to system tray (Bug #4928). Note: This is still unclear to me
what is correct behaviour here, the problem reported in bug
#4928 happens with some other window managers too (e.g. kwin from
kde 4.2, fluxbox) but not with others (openbox, metacity, icewm).
Modified: xfwm4/trunk/ChangeLog
===================================================================
--- xfwm4/trunk/ChangeLog 2009-02-16 10:31:08 UTC (rev 29492)
+++ xfwm4/trunk/ChangeLog 2009-02-16 11:11:27 UTC (rev 29493)
@@ -1,3 +1,12 @@
+2009-02-16 olivier
+
+ * src/events.c, src/client.c: Fix ICCCM synthetic unmap notify
+ handling causing a race condition with amule when started hidden
+ to system tray (Bug #4928). Note: This is still unclear to me
+ what is correct behaviour here, the problem reported in bug
+ #4928 happens with some other window managers too (e.g. kwin from
+ kde 4.2, fluxbox) but not with others (openbox, metacity, icewm).
+
2009-02-07 jannis
* settings-dialogs/xfwm4-settings.c : Add the new parameter required
Modified: xfwm4/trunk/NEWS
===================================================================
--- xfwm4/trunk/NEWS 2009-02-16 10:31:08 UTC (rev 29492)
+++ xfwm4/trunk/NEWS 2009-02-16 11:11:27 UTC (rev 29493)
@@ -12,6 +12,8 @@
- Do not automatically give focus to windows placed on lower layers, but
focus those on upper layers at first map.
- Fix compilation failure in debug full without render
+- Fix ICCCM synthetic unmap notify handling causing a race condition with
+ amule when started hidden to system tray (Bug #4928)
4.5.99.1 (Xfce 4.6rc1)
======================
Modified: xfwm4/trunk/src/client.c
===================================================================
--- xfwm4/trunk/src/client.c 2009-02-16 10:31:08 UTC (rev 29492)
+++ xfwm4/trunk/src/client.c 2009-02-16 11:11:27 UTC (rev 29493)
@@ -1940,7 +1940,7 @@
XCreateWindow (display_info->dpy, screen_info->xroot, 0, 0, 1, 1, 0,
c->depth, InputOutput, c->visual, valuemask, &attributes);
- XSelectInput (display_info->dpy, c->window, 0);
+ XSelectInput (display_info->dpy, c->window, NoEventMask);
XSetWindowBorderWidth (display_info->dpy, c->window, 0);
if (FLAG_TEST (c->flags, CLIENT_FLAG_SHADED))
{
@@ -1950,7 +1950,6 @@
valuemask = CWEventMask;
attributes.event_mask = (CLIENT_EVENT_MASK);
XChangeWindowAttributes (display_info->dpy, c->window, valuemask, &attributes);
- XSelectInput (display_info->dpy, c->window, CLIENT_EVENT_MASK);
if (display_info->have_shape)
{
XShapeSelectInput (display_info->dpy, c->window, ShapeNotifyMask);
@@ -2652,6 +2651,7 @@
screen_info = c->screen_info;
display_info = screen_info->display_info;
timestamp = myDisplayGetCurrentTime (display_info);
+ timestamp = myDisplayGetTime (display_info, timestamp);
if (FLAG_TEST (c->wm_flags, WM_FLAG_DELETE))
{
Modified: xfwm4/trunk/src/events.c
===================================================================
--- xfwm4/trunk/src/events.c 2009-02-16 10:31:08 UTC (rev 29492)
+++ xfwm4/trunk/src/events.c 2009-02-16 11:11:27 UTC (rev 29493)
@@ -1186,12 +1186,14 @@
*/
if ((ev->event == screen_info->xroot) && (ev->send_event))
{
- TRACE ("ICCCM UnmapNotify for \"%s\"", c->name);
- list_of_windows = clientListTransientOrModal (c);
- clientPassFocus (screen_info, c, list_of_windows);
- clientUnframe (c, FALSE);
- g_list_free (list_of_windows);
-
+ if (!FLAG_TEST (c->xfwm_flags, XFWM_FLAG_VISIBLE))
+ {
+ TRACE ("ICCCM UnmapNotify for \"%s\"", c->name);
+ list_of_windows = clientListTransientOrModal (c);
+ clientPassFocus (screen_info, c, list_of_windows);
+ clientUnframe (c, FALSE);
+ g_list_free (list_of_windows);
+ }
return status;
}
More information about the Xfce4-commits
mailing list