fix: skip unmap notifications for unmanaged clients
This commit is contained in:
parent
527f644a94
commit
e0bc89ecdc
BIN
build/client.o
BIN
build/client.o
Binary file not shown.
BIN
build/main.o
BIN
build/main.o
Binary file not shown.
@ -833,6 +833,7 @@ void client_set_fullscreen(Client *client, bool fullscreen)
|
|||||||
XRaiseWindow(dwn->display, client->window);
|
XRaiseWindow(dwn->display, client->window);
|
||||||
XSync(dwn->display, False);
|
XSync(dwn->display, False);
|
||||||
} else {
|
} else {
|
||||||
|
client->flags |= CLIENT_UNMANAGING;
|
||||||
client->flags &= ~CLIENT_FULLSCREEN;
|
client->flags &= ~CLIENT_FULLSCREEN;
|
||||||
atoms_update_wm_state(client->window, ewmh.NET_WM_STATE_FULLSCREEN, false);
|
atoms_update_wm_state(client->window, ewmh.NET_WM_STATE_FULLSCREEN, false);
|
||||||
api_emit_window_fullscreen(client->window, false);
|
api_emit_window_fullscreen(client->window, false);
|
||||||
@ -855,6 +856,7 @@ void client_set_fullscreen(Client *client, bool fullscreen)
|
|||||||
decorations_render(client, true);
|
decorations_render(client, true);
|
||||||
client_raise(client);
|
client_raise(client);
|
||||||
XSync(dwn->display, False);
|
XSync(dwn->display, False);
|
||||||
|
client->flags &= ~CLIENT_UNMANAGING;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -335,6 +335,11 @@ static void handle_unmap_notify(XUnmapEvent *ev)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (c->flags & CLIENT_UNMANAGING) {
|
||||||
|
LOG_DEBUG("handle_unmap_notify: window %lu is being unmanged, skipping unmap", c->window);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (c->workspace != (unsigned int)dwn->current_workspace) {
|
if (c->workspace != (unsigned int)dwn->current_workspace) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user