aboutsummaryrefslogtreecommitdiff
path: root/sway/input/text_input.c
diff options
context:
space:
mode:
authorTadeo Kondrak <me@tadeo.ca>2021-01-26 13:48:42 -0700
committerTudor Brindus <me@tbrindus.ca>2021-02-15 16:44:15 -0500
commitb0e8f4ade2e6e7831671faa05bdfd2cac0059adf (patch)
treef35edf051a77b7b38e46cbe79f02dbfe14c9baa2 /sway/input/text_input.c
parent31a01bb80df29fa7afd48741bc8fe1a948314eab (diff)
text_input: Ignore text_input disable from unfocused windows
Before this commit, there would be cases where focus changes from one window to another, the new window activates text_input, then the old window sends a deactivate request, making text_input unfocused completely.
Diffstat (limited to 'sway/input/text_input.c')
-rw-r--r--sway/input/text_input.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sway/input/text_input.c b/sway/input/text_input.c
index f83726ee..70659712 100644
--- a/sway/input/text_input.c
+++ b/sway/input/text_input.c
@@ -144,6 +144,10 @@ static void handle_text_input_disable(struct wl_listener *listener,
void *data) {
struct sway_text_input *text_input = wl_container_of(listener, text_input,
text_input_disable);
+ if (text_input->input->focused_surface == NULL) {
+ sway_log(SWAY_DEBUG, "Disabling text input, but no longer focused");
+ return;
+ }
relay_disable_text_input(text_input->relay, text_input);
}