From 86f73b767a00dc4a78d86c3225583970149e2905 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Wed, 27 Nov 2019 23:45:14 +0000 Subject: ensure caret is handled correctly on gtk when focus is removed from layout --- frontends/gtk/window.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'frontends/gtk') diff --git a/frontends/gtk/window.c b/frontends/gtk/window.c index 3c9f6d614..39bd06bc4 100644 --- a/frontends/gtk/window.c +++ b/frontends/gtk/window.c @@ -302,6 +302,22 @@ nsgtk_window_motion_notify_event(GtkWidget *widget, return TRUE; } +/** + * GTK signal handler for focus-out-event on layout + * + * when focus leaves the layout widget ensure the caret is cleared + */ +static gboolean +nsgtk_window_focus_out_event(GtkWidget *widget, + GdkEvent *event, + gpointer data) +{ + struct gui_window *g = data; + + browser_window_remove_caret(g->bw, true); + return FALSE; +} + /** * GTK signal handler for button-press-event on layout */ @@ -914,6 +930,8 @@ gui_window_create(struct browser_window *bw, nsgtk_window_size_allocate_event, g); CONNECT(g->layout, "scroll-event", nsgtk_window_scroll_event, g); + CONNECT(g->layout, "focus-out-event", + nsgtk_window_focus_out_event, g); /* status pane signals */ CONNECT(g->paned, "size-allocate", -- cgit v1.2.3