aboutsummaryrefslogtreecommitdiff
path: root/sway/input
diff options
context:
space:
mode:
authorxdavidwu <xdavidwuph@gmail.com>2020-01-12 10:20:32 +0800
committerSimon Ser <contact@emersion.fr>2020-04-04 11:42:04 +0200
commit1241b42c88f0ee2f9dfabb91e41196224699be01 (patch)
tree1058510309e8b1495a6b7c17f8d53bc4ac8bdb93 /sway/input
parent5886187c6ef56307f15be475dc62785faf32ef35 (diff)
input-method: remove surface listener before set
This make sure pending focused surface listener is not reachable from old surface.
Diffstat (limited to 'sway/input')
-rw-r--r--sway/input/text_input.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sway/input/text_input.c b/sway/input/text_input.c
index 3e446cb9..f3fca68e 100644
--- a/sway/input/text_input.c
+++ b/sway/input/text_input.c
@@ -57,6 +57,7 @@ static void handle_im_commit(struct wl_listener *listener, void *data) {
static void text_input_set_pending_focused_surface(
struct sway_text_input *text_input, struct wlr_surface *surface) {
+ wl_list_remove(&text_input->pending_focused_surface_destroy.link);
text_input->pending_focused_surface = surface;
wl_signal_add(&surface->events.destroy,
&text_input->pending_focused_surface_destroy);