summaryrefslogtreecommitdiff
path: root/src/client.c
diff options
context:
space:
mode:
authorOlivier Fourdan <fourdan.olivier@wanadoo.fr>2009-02-16 11:11:27 +0000
committerOlivier Fourdan <fourdan.olivier@wanadoo.fr>2009-02-16 11:11:27 +0000
commitc731b7fbedafd927ba00c66cc77682088beedb69 (patch)
tree40cc9bb8a514d438fb1e3b734abe4d30dc248cae /src/client.c
parent70eeb59663c8d88f3969a3f5ec77c8dc91d0aaaa (diff)
downloadxfwm4-c731b7fbedafd927ba00c66cc77682088beedb69.tar.gz
* 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). (Old svn revision: 29493)
Diffstat (limited to 'src/client.c')
-rw-r--r--src/client.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/client.c b/src/client.c
index b299ca705..f487d333a 100644
--- a/src/client.c
+++ b/src/client.c
@@ -1940,7 +1940,7 @@ clientFrame (DisplayInfo *display_info, Window w, gboolean recapture)
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 @@ clientFrame (DisplayInfo *display_info, Window w, gboolean recapture)
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 @@ clientClose (Client * c)
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))
{