Release all grabs when unmanaging windows
When a window is unmapped, awesome stops tracking it, possibly leaving stale grabs behind. These grabs can be activated if the window is mapped again without awesome’s knowledge. This results in a locked pointer until the grab window is destroyed. Fix by releasing passive grabs before untracking a client window.
This commit is contained in:
parent
aa8c7c6e27
commit
16c560a568
|
@ -3010,6 +3010,8 @@ client_unmanage(client_t *c, client_unmanage_t reason)
|
|||
|
||||
if(reason != CLIENT_UNMANAGE_DESTROYED)
|
||||
{
|
||||
xwindow_buttons_grab(c->window, &(button_array_t){ .len = 0 });
|
||||
xwindow_grabkeys(c->window, &(key_array_t){ .len = 0 });
|
||||
area_t geometry = client_get_undecorated_geometry(c);
|
||||
xcb_unmap_window(globalconf.connection, c->window);
|
||||
xcb_reparent_window(globalconf.connection, c->window, globalconf.screen->root,
|
||||
|
|
Loading…
Reference in New Issue