summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk/gtkcoloreditor.c14
-rw-r--r--gtk/ui/gtkcoloreditor.ui2
2 files changed, 8 insertions, 8 deletions
diff --git a/gtk/gtkcoloreditor.c b/gtk/gtkcoloreditor.c
index 2fc1bd46a6..9bf2108efc 100644
--- a/gtk/gtkcoloreditor.c
+++ b/gtk/gtkcoloreditor.c
@@ -126,13 +126,13 @@ entry_apply (GtkWidget *entry,
g_free (text);
}
-static gboolean
-entry_focus_out (GtkWidget *entry,
- GdkEventFocus *event,
- GtkColorEditor *editor)
+static void
+entry_focus_changed (GtkWidget *entry,
+ GParamSpec *pspec,
+ GtkColorEditor *editor)
{
- entry_apply (entry, editor);
- return FALSE;
+ if (!gtk_widget_has_focus (entry))
+ entry_apply (entry, editor);
}
static void
@@ -487,7 +487,7 @@ gtk_color_editor_class_init (GtkColorEditorClass *class)
gtk_widget_class_bind_template_callback (widget_class, get_child_position);
gtk_widget_class_bind_template_callback (widget_class, entry_text_changed);
gtk_widget_class_bind_template_callback (widget_class, entry_apply);
- gtk_widget_class_bind_template_callback (widget_class, entry_focus_out);
+ gtk_widget_class_bind_template_callback (widget_class, entry_focus_changed);
gtk_widget_class_bind_template_callback (widget_class, popup_edit);
}
diff --git a/gtk/ui/gtkcoloreditor.ui b/gtk/ui/gtkcoloreditor.ui
index 725231e3c3..c38f771511 100644
--- a/gtk/ui/gtkcoloreditor.ui
+++ b/gtk/ui/gtkcoloreditor.ui
@@ -60,7 +60,7 @@
</object>
</child>
<signal name="activate" handler="entry_apply" swapped="no"/>
- <signal name="focus-out-event" handler="entry_focus_out" swapped="no"/>
+ <signal name="notify::has-focus" handler="entry_focus_changed" swapped="no"/>
<signal name="notify::text" handler="entry_text_changed" swapped="no"/>
</object>
<packing>