From 4a3a339a771d237ff4ddc8aa8fccb67e187da80c Mon Sep 17 00:00:00 2001 From: Jabiertxof Date: Tue, 10 Sep 2019 13:00:02 +0200 Subject: Fix a focus issue pointed by Tav --- src/ui/tools/text-tool.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ui/tools/text-tool.cpp b/src/ui/tools/text-tool.cpp index 3c2b5400b..6b35990aa 100644 --- a/src/ui/tools/text-tool.cpp +++ b/src/ui/tools/text-tool.cpp @@ -160,6 +160,7 @@ void TextTool::setup() { gtk_im_context_set_client_window(this->imc, gtk_widget_get_window (canvas)); + g_signal_connect(G_OBJECT(canvas), "motion_notify_event", G_CALLBACK(sptc_focus_in), this); g_signal_connect(G_OBJECT(canvas), "focus_in_event", G_CALLBACK(sptc_focus_in), this); g_signal_connect(G_OBJECT(canvas), "focus_out_event", G_CALLBACK(sptc_focus_out), this); g_signal_connect(G_OBJECT(this->imc), "commit", G_CALLBACK(sptc_commit), this); @@ -1793,8 +1794,11 @@ static void sp_text_context_forget_text(TextTool *tc) */ } -gint sptc_focus_in(GtkWidget */*widget*/, GdkEventFocus */*event*/, TextTool *tc) +gint sptc_focus_in(GtkWidget *widget, GdkEventFocus */*event*/, TextTool *tc) { + if (!gtk_widget_is_focus (widget)) { + gtk_widget_grab_focus(widget); + } gtk_im_context_focus_in(tc->imc); return FALSE; } -- cgit v1.2.3