workspaces.
* Bugfix: Correctly restart i3 when not using its absolute path
* Bugfix: Drag & Drop in GTK applications works now
+ * Bugfix: Don't hide non-managed windows (libnotify-popups for example)
+ when raising clients in stacked containers.
+ * Bugfix: Correctly restore focus when leaving fullscreen mode
* Implement scrolling on stack windows and on the bottom bar.
* Create i3-wm-dbg with debug symbols
* Don't rely on libxcb-wm any longer, as it got removed in libxcb 0.3.4.
#define FRAME_EVENT_MASK (XCB_EVENT_MASK_BUTTON_PRESS | /* …mouse is pressed/released */ \
XCB_EVENT_MASK_BUTTON_RELEASE | \
XCB_EVENT_MASK_EXPOSURE | /* …our window needs to be redrawn */ \
+ XCB_EVENT_MASK_STRUCTURE_NOTIFY | /* …the frame gets destroyed */ \
XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT | /* …the application tries to resize itself */ \
XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY | /* …subwindows get notifies */ \
XCB_EVENT_MASK_ENTER_WINDOW) /* …user moves cursor inside our window */
LOG("UnmapNotify for 0x%08x (received from 0x%08x)\n", event->window, event->event);
if (client == NULL) {
LOG("not a managed window. Ignoring.\n");
+
+ /* This was most likely the destroyed frame of a client which is
+ * currently being unmapped, so we add this sequence (again!) to
+ * the ignore list (enter_notify events will get sent for both,
+ * the child and its frame). */
+ add_ignore_event(event->sequence);
+
return 0;
}
con->currently_focused = get_last_focused_client(conn, con, NULL);
/* Only if this is the active container, we need to really change focus */
- if ((con->currently_focused != NULL) && (con == CUR_CELL))
- set_focus(conn, con->currently_focused, false);
+ if ((con->currently_focused != NULL) && ((con == CUR_CELL) || client->fullscreen))
+ set_focus(conn, con->currently_focused, true);
}
if (client->dock) {