mirror of
https://github.com/awesomeWM/awesome
synced 2024-11-16 07:47:22 +01:00
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
1 changed files with 2 additions and 0 deletions
|
@ -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 a new issue