diff options
author | Vincent Untz <vuntz@gnome.org> | 2012-01-30 15:18:51 +0100 |
---|---|---|
committer | Vincent Untz <vuntz@gnome.org> | 2012-01-30 15:39:40 +0100 |
commit | 2db365cb6397edb359072c8acbc9dd642909460f (patch) | |
tree | 49952261a43c213237a0f87c6ce319ca83cb289a /libwnck/application.c | |
parent | 46f87fa639a108c2ecd5ed711a530716545b2065 (diff) | |
download | libwnck-2db365cb6397edb359072c8acbc9dd642909460f.tar.gz |
core: Also reset the XSelectInput for WnckScreen and WnckApplication
We don't want to break apps that have set some specific mask with
XSelectInput.
Diffstat (limited to 'libwnck/application.c')
-rw-r--r-- | libwnck/application.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/libwnck/application.c b/libwnck/application.c index edd32e6..f10c334 100644 --- a/libwnck/application.c +++ b/libwnck/application.c @@ -60,6 +60,8 @@ struct _WnckApplicationPrivate int pid; char *name; + int orig_event_mask; + WnckWindow *name_window; /* window we are using name of */ GdkPixbuf *icon; @@ -186,6 +188,11 @@ wnck_application_finalize (GObject *object) application = WNCK_APPLICATION (object); + _wnck_select_input (WNCK_SCREEN_XSCREEN (application->priv->screen), + application->priv->xwindow, + application->priv->orig_event_mask, + FALSE); + application->priv->xwindow = None; g_list_free (application->priv->windows); @@ -566,10 +573,10 @@ _wnck_application_create (Window xwindow, /* Note that xwindow may correspond to a WnckWindow's xwindow, * so we select events needed by either */ - _wnck_select_input (xscreen, - application->priv->xwindow, - WNCK_APP_WINDOW_EVENT_MASK, - TRUE); + application->priv->orig_event_mask = _wnck_select_input (xscreen, + application->priv->xwindow, + WNCK_APP_WINDOW_EVENT_MASK, + TRUE); return application; } |