aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArmin Preiml <apreiml@strohwolke.at>2018-07-03 15:03:00 +0200
committerArmin Preiml <apreiml@strohwolke.at>2018-07-03 15:03:00 +0200
commite6d613ca2e82623fbf9744b0da93d906a4fc03b3 (patch)
treeb2e25da30a3858ac0de05443fa0e2b488bf55701
parent742c66d93f373d1417babe1083991f7f519dce7d (diff)
fix: add stack update on focus change
Enable the stack update again for focus changes on non-focusable views.
-rw-r--r--CONTRIBUTING.md2
-rw-r--r--xwayland/xwm.c10
2 files changed, 6 insertions, 6 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 9dd7f504..c6110522 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -236,7 +236,7 @@ error_session:
## Wayland protocol implementation
Each protocol generally lives in a file with the same name, usually containing
-at leats one struct for each interface in the protocol. For instance,
+at least one struct for each interface in the protocol. For instance,
`xdg_shell` lives in `types/wlr_xdg_shell.h` and has a `wlr_xdg_surface` struct.
### Globals
diff --git a/xwayland/xwm.c b/xwayland/xwm.c
index 54550d0c..ad8cd4ad 100644
--- a/xwayland/xwm.c
+++ b/xwayland/xwm.c
@@ -228,13 +228,13 @@ static void xwm_send_focus_window(struct wlr_xwm *xwm,
// if the surface doesn't allow the focus request, we will send him
// only the take focus event. It will get the focus by itself.
xwm_send_wm_message(xsurface, &message_data, XCB_EVENT_MASK_NO_EVENT);
- return;
}
+ else {
+ xwm_send_wm_message(xsurface, &message_data, XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT);
- xwm_send_wm_message(xsurface, &message_data, XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT);
-
- xcb_set_input_focus(xwm->xcb_conn, XCB_INPUT_FOCUS_POINTER_ROOT,
- xsurface->window_id, XCB_CURRENT_TIME);
+ xcb_set_input_focus(xwm->xcb_conn, XCB_INPUT_FOCUS_POINTER_ROOT,
+ xsurface->window_id, XCB_CURRENT_TIME);
+ }
uint32_t values[1];
values[0] = XCB_STACK_MODE_ABOVE;