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; } _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits