diff options
author | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2016-11-01 20:51:06 +0200 |
---|---|---|
committer | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2016-11-01 20:51:06 +0200 |
commit | 1ec420acc9fa40c6774ac58ef54d86ea7bf05a6c (patch) | |
tree | e721d4073ad6c8de89fa583fc6843b0b72219a8b | |
parent | 3aaa36c2566a6d91f161e3f006da54a43c261489 (diff) | |
download | metacity-1ec420acc9fa40c6774ac58ef54d86ea7bf05a6c.tar.gz |
group: add error trap
https://bugs.launchpad.net/bugs/1638153
-rw-r--r-- | src/core/group.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/core/group.c b/src/core/group.c index 92803849..a3f4f88f 100644 --- a/src/core/group.c +++ b/src/core/group.c @@ -45,10 +45,15 @@ meta_group_new (MetaDisplay *display, group->group_leader = group_leader; group->refcount = 1; /* owned by caller, hash table has only weak ref */ + gdk_error_trap_push (); + XGetWindowAttributes (display->xdisplay, group_leader, &attrs); XSelectInput (display->xdisplay, group_leader, attrs.your_event_mask | PropertyChangeMask); + if (gdk_error_trap_pop () != 0) + return NULL; + if (display->groups_by_leader == NULL) display->groups_by_leader = g_hash_table_new (meta_unsigned_long_hash, meta_unsigned_long_equal); @@ -162,12 +167,14 @@ meta_window_compute_group (MetaWindow* window) window->group = group; } + if (!window->group) + return; + window->group->windows = g_slist_prepend (window->group->windows, window); meta_topic (META_DEBUG_GROUPS, "Adding %s to group with leader 0x%lx\n", window->desc, group->group_leader); - } static void @@ -273,5 +280,4 @@ meta_group_property_notify (MetaGroup *group, event->xproperty.atom); return TRUE; - } |