summaryrefslogtreecommitdiff
path: root/libwnck/application.c
diff options
context:
space:
mode:
authorVincent Untz <vuntz@gnome.org>2012-01-30 15:18:51 +0100
committerVincent Untz <vuntz@gnome.org>2012-01-30 15:39:40 +0100
commit2db365cb6397edb359072c8acbc9dd642909460f (patch)
tree49952261a43c213237a0f87c6ce319ca83cb289a /libwnck/application.c
parent46f87fa639a108c2ecd5ed711a530716545b2065 (diff)
downloadlibwnck-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.c15
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;
}