Ignore UnmapNotify events generated by reparenting
This commit is contained in:
parent
7adf921bc3
commit
8c5d824fa8
|
@ -451,11 +451,17 @@ int handle_screen_change(void *prophs, xcb_connection_t *conn,
|
||||||
*/
|
*/
|
||||||
int handle_unmap_notify_event(void *data, xcb_connection_t *conn, xcb_unmap_notify_event_t *event) {
|
int handle_unmap_notify_event(void *data, xcb_connection_t *conn, xcb_unmap_notify_event_t *event) {
|
||||||
|
|
||||||
|
bool ignored = event_is_ignored(event->sequence);
|
||||||
|
|
||||||
/* we need to ignore EnterNotify events which will be generated because a
|
/* we need to ignore EnterNotify events which will be generated because a
|
||||||
* different window is visible now */
|
* different window is visible now */
|
||||||
add_ignore_event(event->sequence);
|
add_ignore_event(event->sequence);
|
||||||
|
|
||||||
DLOG("UnmapNotify for 0x%08x (received from 0x%08x), serial %d\n", event->window, event->event, event->sequence);
|
DLOG("UnmapNotify for 0x%08x (received from 0x%08x), serial %d\n", event->window, event->event, event->sequence);
|
||||||
|
if (ignored) {
|
||||||
|
DLOG("Ignoring UnmapNotify (generated by reparenting)\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
Con *con = con_by_window_id(event->window);
|
Con *con = con_by_window_id(event->window);
|
||||||
if (con == NULL) {
|
if (con == NULL) {
|
||||||
LOG("Not a managed window, ignoring\n");
|
LOG("Not a managed window, ignoring\n");
|
||||||
|
|
|
@ -171,6 +171,9 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LOG("ignoring sequence %d for reparenting!\n", rcookie.sequence);
|
||||||
|
add_ignore_event(rcookie.sequence);
|
||||||
|
|
||||||
xcb_get_property_reply_t *reply = xcb_get_property_reply(conn, state_cookie, NULL);
|
xcb_get_property_reply_t *reply = xcb_get_property_reply(conn, state_cookie, NULL);
|
||||||
if (xcb_reply_contains_atom(reply, atoms[_NET_WM_STATE_FULLSCREEN]))
|
if (xcb_reply_contains_atom(reply, atoms[_NET_WM_STATE_FULLSCREEN]))
|
||||||
con_toggle_fullscreen(nc);
|
con_toggle_fullscreen(nc);
|
||||||
|
|
Loading…
Reference in New Issue