aboutsummaryrefslogtreecommitdiff
path: root/rootston
diff options
context:
space:
mode:
authorDorota Czaplejewicz <dorota.czaplejewicz@puri.sm>2018-05-24 16:10:29 +0200
committerDorota Czaplejewicz <dorota.czaplejewicz@puri.sm>2018-05-24 16:10:29 +0200
commita94c56a828933d72b0529f81916292222ef152f0 (patch)
treedefe8ed75ef496af64b4c342212532947d190a18 /rootston
parentfa13493ad539ff768f47932668c75d7c4513b0a5 (diff)
rootston: Keep focus unchanged when non-focusable element clicked
Before this change, a view would lose focus after clicking something that's not keyboard-interactive. This would lead to edge cases with layer-shell windows like input methods, which are pointer-only-interactive, but are not intended to change the state of any focus.
Diffstat (limited to 'rootston')
-rw-r--r--rootston/cursor.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/rootston/cursor.c b/rootston/cursor.c
index 55b145e2..1cf81704 100644
--- a/rootston/cursor.c
+++ b/rootston/cursor.c
@@ -273,7 +273,9 @@ static void roots_cursor_press_button(struct roots_cursor *cursor,
}
break;
case WLR_BUTTON_PRESSED:
- roots_seat_set_focus(seat, view);
+ if (view) {
+ roots_seat_set_focus(seat, view);
+ }
if (surface && wlr_surface_is_layer_surface(surface)) {
struct wlr_layer_surface *layer =
wlr_layer_surface_from_wlr_surface(surface);