[gtk+] spin cell renderer: Stop using ::focus-out-event
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] spin cell renderer: Stop using ::focus-out-event
- Date: Tue, 16 Jan 2018 19:20:07 +0000 (UTC)
commit 7af2f73608c9adf85612d77eb4ba92efb06a1f45
Author: Matthias Clasen <mclasen redhat com>
Date: Sat Jan 6 15:09:26 2018 -0500
spin cell renderer: Stop using ::focus-out-event
The has-focus property works fine here.
gtk/gtkcellrendererspin.c | 19 ++++++++++---------
1 files changed, 10 insertions(+), 9 deletions(-)
---
diff --git a/gtk/gtkcellrendererspin.c b/gtk/gtkcellrendererspin.c
index 6f67a8b..feb7a78 100644
--- a/gtk/gtkcellrendererspin.c
+++ b/gtk/gtkcellrendererspin.c
@@ -246,21 +246,24 @@ gtk_cell_renderer_spin_set_property (GObject *object,
}
}
-static gboolean
-gtk_cell_renderer_spin_focus_out_event (GtkWidget *widget,
- GdkEvent *event,
- gpointer data)
+static void
+gtk_cell_renderer_spin_focus_changed (GtkWidget *widget,
+ GParamSpec *pspec,
+ gpointer data)
{
const gchar *path;
const gchar *new_text;
gboolean canceled;
+ if (gtk_widget_has_focus (widget))
+ return;
+
g_object_get (widget,
"editing-canceled", &canceled,
NULL);
g_signal_handlers_disconnect_by_func (widget,
- gtk_cell_renderer_spin_focus_out_event,
+ gtk_cell_renderer_spin_focus_changed,
data);
gtk_cell_renderer_stop_editing (GTK_CELL_RENDERER (data), canceled);
@@ -272,8 +275,6 @@ gtk_cell_renderer_spin_focus_out_event (GtkWidget *widget,
new_text = gtk_entry_get_text (GTK_ENTRY (widget));
g_signal_emit_by_name (data, "edited", path, new_text);
}
-
- return FALSE;
}
static gboolean
@@ -343,8 +344,8 @@ gtk_cell_renderer_spin_start_editing (GtkCellRenderer *cell,
g_object_set_data_full (G_OBJECT (spin), GTK_CELL_RENDERER_SPIN_PATH,
g_strdup (path), g_free);
- g_signal_connect (G_OBJECT (spin), "focus-out-event",
- G_CALLBACK (gtk_cell_renderer_spin_focus_out_event),
+ g_signal_connect (G_OBJECT (spin), "notify::has-focus",
+ G_CALLBACK (gtk_cell_renderer_spin_focus_changed),
cell);
g_signal_connect (G_OBJECT (spin), "key-press-event",
G_CALLBACK (gtk_cell_renderer_spin_key_press_event),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]