diff options
author | Kristian Rietveld <kris@gtk.org> | 2002-10-14 22:50:18 +0000 |
---|---|---|
committer | Kristian Rietveld <kristian@src.gnome.org> | 2002-10-14 22:50:18 +0000 |
commit | bd20ab01a56771645f12be594a68021b9b16d563 (patch) | |
tree | 2d7923ef19028e27b6fda49f74ea7fea9396553f /gtk/gtkcellrenderertext.c | |
parent | cba9d7e86c93292cd240ed82ca4e150f7895b3ba (diff) | |
download | gdk-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.c | 32 |
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); } |