Bugfix: When entering a stack window with the mouse, set the focus to the active client
Fixes ticket #17
This commit is contained in:
parent
8338f95d82
commit
9077831ed3
|
@ -154,6 +154,17 @@ int handle_enter_notify(void *ignored, xcb_connection_t *conn, xcb_enter_notify_
|
|||
if (client == NULL)
|
||||
client = table_get(byChild, event->event);
|
||||
|
||||
/* Check for stack windows */
|
||||
if (client == NULL) {
|
||||
struct Stack_Window *stack_win;
|
||||
SLIST_FOREACH(stack_win, &stack_wins, stack_windows)
|
||||
if (stack_win->window == event->event) {
|
||||
client = stack_win->container->currently_focused;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* If not, then the user moved his cursor to the root window. In that case, we adjust c_ws */
|
||||
if (client == NULL) {
|
||||
LOG("Getting screen at %d x %d\n", event->root_x, event->root_y);
|
||||
|
|
|
@ -298,7 +298,8 @@ void switch_layout_mode(xcb_connection_t *conn, Container *container, int mode)
|
|||
|
||||
/* We want to know when… */
|
||||
mask |= XCB_CW_EVENT_MASK;
|
||||
values[1] = XCB_EVENT_MASK_BUTTON_PRESS | /* …mouse is pressed */
|
||||
values[1] = XCB_EVENT_MASK_ENTER_WINDOW | /* …mouse is moved into our window */
|
||||
XCB_EVENT_MASK_BUTTON_PRESS | /* …mouse is pressed */
|
||||
XCB_EVENT_MASK_EXPOSURE; /* …our window needs to be redrawn */
|
||||
|
||||
struct Stack_Window *stack_win = &(container->stack_win);
|
||||
|
|
Loading…
Reference in New Issue