summaryrefslogtreecommitdiff
path: root/gtk/gtkcellrenderertext.c
diff options
context:
space:
mode:
authorKristian Rietveld <kris@gtk.org>2002-10-14 22:50:18 +0000
committerKristian Rietveld <kristian@src.gnome.org>2002-10-14 22:50:18 +0000
commitbd20ab01a56771645f12be594a68021b9b16d563 (patch)
tree2d7923ef19028e27b6fda49f74ea7fea9396553f /gtk/gtkcellrenderertext.c
parentcba9d7e86c93292cd240ed82ca4e150f7895b3ba (diff)
downloadgdk-pixbuf-bd20ab01a56771645f12be594a68021b9b16d563.tar.gz
Behaviour change, apply changes if the entry of the editable gets a focus
Tue Oct 15 00:53:14 2002 Kristian Rietveld <kris@gtk.org> Behaviour change, apply changes if the entry of the editable gets a focus out event (#82405). * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_focus_out_event): new function, (gtk_cell_renderer_text_start_editing): stop editing and apply changes on focus-out. Tue Oct 15 00:47:35 2002 Kristian Rietveld <kris@gtk.org> Fixes an *evil* GtkTreeModelSort bug, #93629. * gtk/gtktreemodel.c (release_row_references): return if the refs->list is NULL. * gtk/gtktreemodelsort.c (gtk_tree_model_sort_row_changed): if we are swapping two rows (re-insertion on row_changed), also *emit* a rows_reordered signal. oops. Tue Oct 15 00:45:03 2002 Kristian Rietveld <kris@gtk.org> * gtk/gtkliststore.c (gtk_list_store_remove_silently): free the actual link after the node has been removed (#92014). * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_column_finalize): free the cell_list and the child if the exists (#92014). Tue Oct 15 00:40:25 2002 Kristian Rietveld <kris@gtk.org> Don't accept drops if the model has been sorted, #93758) * gtk/gtkliststore.c (gtk_list_store_row_drop_possible): return FALSE if the list has been sorted. * gtk/gtktreestore.c (gtk_tree_store_row_drop_possible): check if drag_dest is a TreeStore, return FALSE if the tree has been sorted. Tue Oct 15 00:33:59 2002 Kristian Rietveld <kris@gtk.org> Compiler warning fixage, (#85858, #85859, #85860, #85872) * gtk/gtkcellrendererpixbuf (gtk_cell_renderer_pixbuf_render): s/guint/GtkCellRendererState/. * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_render): ditto. * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_render), (gtk_cell_renderer_toggle_activate): ditto. * gtk/gtkliststore.c (gtk_list_store_get_flags): a s/guint/GtkTreeModelFlags/ on the return type.
Diffstat (limited to 'gtk/gtkcellrenderertext.c')
-rw-r--r--gtk/gtkcellrenderertext.c32
1 files changed, 24 insertions, 8 deletions
diff --git a/gtk/gtkcellrenderertext.c b/gtk/gtkcellrenderertext.c
index 46ffaee91..8fa5b41ce 100644
--- a/gtk/gtkcellrenderertext.c
+++ b/gtk/gtkcellrenderertext.c
@@ -49,7 +49,7 @@ static void gtk_cell_renderer_text_render (GtkCellRenderer *cell,
GdkRectangle *background_area,
GdkRectangle *cell_area,
GdkRectangle *expose_area,
- guint flags);
+ GtkCellRendererState flags);
static GtkCellEditable *gtk_cell_renderer_text_start_editing (GtkCellRenderer *cell,
GdkEvent *event,
@@ -1250,13 +1250,13 @@ gtk_cell_renderer_text_get_size (GtkCellRenderer *cell,
}
static void
-gtk_cell_renderer_text_render (GtkCellRenderer *cell,
- GdkWindow *window,
- GtkWidget *widget,
- GdkRectangle *background_area,
- GdkRectangle *cell_area,
- GdkRectangle *expose_area,
- guint flags)
+gtk_cell_renderer_text_render (GtkCellRenderer *cell,
+ GdkWindow *window,
+ GtkWidget *widget,
+ GdkRectangle *background_area,
+ GdkRectangle *cell_area,
+ GdkRectangle *expose_area,
+ GtkCellRendererState flags)
{
GtkCellRendererText *celltext = (GtkCellRendererText *) cell;
@@ -1321,6 +1321,7 @@ gtk_cell_renderer_text_render (GtkCellRenderer *cell,
g_object_unref (layout);
}
+
static void
gtk_cell_renderer_text_editing_done (GtkCellEditable *entry,
gpointer data)
@@ -1337,6 +1338,17 @@ gtk_cell_renderer_text_editing_done (GtkCellEditable *entry,
g_signal_emit (data, text_cell_renderer_signals[EDITED], 0, path, new_text);
}
+static gboolean
+gtk_cell_renderer_text_focus_out_event (GtkWidget *entry,
+ GdkEvent *event,
+ gpointer data)
+{
+ gtk_cell_renderer_text_editing_done (GTK_CELL_EDITABLE (entry), data);
+
+ /* entry needs focus-out-event */
+ return FALSE;
+}
+
static GtkCellEditable *
gtk_cell_renderer_text_start_editing (GtkCellRenderer *cell,
GdkEvent *event,
@@ -1369,6 +1381,10 @@ gtk_cell_renderer_text_start_editing (GtkCellRenderer *cell,
"editing_done",
G_CALLBACK (gtk_cell_renderer_text_editing_done),
celltext);
+ g_signal_connect (entry, "focus_out_event",
+ G_CALLBACK (gtk_cell_renderer_text_focus_out_event),
+ celltext);
+
return GTK_CELL_EDITABLE (entry);
}