From 29985af0fa06d7db2de812dcc8e0653bd70b1936 Mon Sep 17 00:00:00 2001 From: Jonathan Blandford Date: Mon, 2 Apr 2001 20:56:55 +0000 Subject: [PATCH] BOXED,BOXED,BOXED,BOXED): new marshaller. Mon Apr 2 16:56:15 2001 Jonathan Blandford * gtk/gtkmarshal.list (VOID:BOXED,BOXED,BOXED,BOXED): new marshaller. * gtk/gtktreemodel.c (gtk_tree_model_range_changed): change "changed" signal to "range_changed". * gtk/gtktreeview.c (gtk_tree_view_set_model): fix small bug where removing a tree from one model would remove all trees from that model. * gtk/gtktreeview.c (gtk_tree_view_range_changed): use range changed signal instead. --- ChangeLog | 14 ++ ChangeLog.pre-2-0 | 14 ++ ChangeLog.pre-2-10 | 14 ++ ChangeLog.pre-2-2 | 14 ++ ChangeLog.pre-2-4 | 14 ++ ChangeLog.pre-2-6 | 14 ++ ChangeLog.pre-2-8 | 14 ++ docs/reference/gtk/gtk.hierarchy | 1 + docs/reference/gtk/tmpl/gtk-unused.sgml | 8 ++ docs/reference/gtk/tmpl/gtkrc.sgml | 1 - docs/reference/gtk/tmpl/gtksignal.sgml | 165 +++++++++++----------- docs/reference/gtk/tmpl/gtktypeutils.sgml | 20 +-- docs/reference/gtk/tmpl/gtkwidget.sgml | 8 -- gtk/gtkliststore.c | 6 +- gtk/gtkmarshal.list | 1 + gtk/gtkmarshalers.list | 1 + gtk/gtktreemodel.c | 30 ++-- gtk/gtktreemodel.h | 16 ++- gtk/gtktreemodelsort.c | 36 ++--- gtk/gtktreestore.c | 6 +- gtk/gtktreeview.c | 38 ++--- 21 files changed, 282 insertions(+), 153 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4ec4dcfd4b..c812cbfcaa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +Mon Apr 2 16:56:15 2001 Jonathan Blandford + + * gtk/gtkmarshal.list (VOID:BOXED,BOXED,BOXED,BOXED): new + marshaller. + + * gtk/gtktreemodel.c (gtk_tree_model_range_changed): change + "changed" signal to "range_changed". + + * gtk/gtktreeview.c (gtk_tree_view_set_model): fix small bug where + removing a tree from one model would remove all trees from that + model. + * gtk/gtktreeview.c (gtk_tree_view_range_changed): use range + changed signal instead. + Mon Apr 2 16:13:58 2001 Owen Taylor * gtk/gtkinvisible.c (gtk_invisible_style_set): Avoid diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 4ec4dcfd4b..c812cbfcaa 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,17 @@ +Mon Apr 2 16:56:15 2001 Jonathan Blandford + + * gtk/gtkmarshal.list (VOID:BOXED,BOXED,BOXED,BOXED): new + marshaller. + + * gtk/gtktreemodel.c (gtk_tree_model_range_changed): change + "changed" signal to "range_changed". + + * gtk/gtktreeview.c (gtk_tree_view_set_model): fix small bug where + removing a tree from one model would remove all trees from that + model. + * gtk/gtktreeview.c (gtk_tree_view_range_changed): use range + changed signal instead. + Mon Apr 2 16:13:58 2001 Owen Taylor * gtk/gtkinvisible.c (gtk_invisible_style_set): Avoid diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 4ec4dcfd4b..c812cbfcaa 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,17 @@ +Mon Apr 2 16:56:15 2001 Jonathan Blandford + + * gtk/gtkmarshal.list (VOID:BOXED,BOXED,BOXED,BOXED): new + marshaller. + + * gtk/gtktreemodel.c (gtk_tree_model_range_changed): change + "changed" signal to "range_changed". + + * gtk/gtktreeview.c (gtk_tree_view_set_model): fix small bug where + removing a tree from one model would remove all trees from that + model. + * gtk/gtktreeview.c (gtk_tree_view_range_changed): use range + changed signal instead. + Mon Apr 2 16:13:58 2001 Owen Taylor * gtk/gtkinvisible.c (gtk_invisible_style_set): Avoid diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 4ec4dcfd4b..c812cbfcaa 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,17 @@ +Mon Apr 2 16:56:15 2001 Jonathan Blandford + + * gtk/gtkmarshal.list (VOID:BOXED,BOXED,BOXED,BOXED): new + marshaller. + + * gtk/gtktreemodel.c (gtk_tree_model_range_changed): change + "changed" signal to "range_changed". + + * gtk/gtktreeview.c (gtk_tree_view_set_model): fix small bug where + removing a tree from one model would remove all trees from that + model. + * gtk/gtktreeview.c (gtk_tree_view_range_changed): use range + changed signal instead. + Mon Apr 2 16:13:58 2001 Owen Taylor * gtk/gtkinvisible.c (gtk_invisible_style_set): Avoid diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 4ec4dcfd4b..c812cbfcaa 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,17 @@ +Mon Apr 2 16:56:15 2001 Jonathan Blandford + + * gtk/gtkmarshal.list (VOID:BOXED,BOXED,BOXED,BOXED): new + marshaller. + + * gtk/gtktreemodel.c (gtk_tree_model_range_changed): change + "changed" signal to "range_changed". + + * gtk/gtktreeview.c (gtk_tree_view_set_model): fix small bug where + removing a tree from one model would remove all trees from that + model. + * gtk/gtktreeview.c (gtk_tree_view_range_changed): use range + changed signal instead. + Mon Apr 2 16:13:58 2001 Owen Taylor * gtk/gtkinvisible.c (gtk_invisible_style_set): Avoid diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 4ec4dcfd4b..c812cbfcaa 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,17 @@ +Mon Apr 2 16:56:15 2001 Jonathan Blandford + + * gtk/gtkmarshal.list (VOID:BOXED,BOXED,BOXED,BOXED): new + marshaller. + + * gtk/gtktreemodel.c (gtk_tree_model_range_changed): change + "changed" signal to "range_changed". + + * gtk/gtktreeview.c (gtk_tree_view_set_model): fix small bug where + removing a tree from one model would remove all trees from that + model. + * gtk/gtktreeview.c (gtk_tree_view_range_changed): use range + changed signal instead. + Mon Apr 2 16:13:58 2001 Owen Taylor * gtk/gtkinvisible.c (gtk_invisible_style_set): Avoid diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 4ec4dcfd4b..c812cbfcaa 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,17 @@ +Mon Apr 2 16:56:15 2001 Jonathan Blandford + + * gtk/gtkmarshal.list (VOID:BOXED,BOXED,BOXED,BOXED): new + marshaller. + + * gtk/gtktreemodel.c (gtk_tree_model_range_changed): change + "changed" signal to "range_changed". + + * gtk/gtktreeview.c (gtk_tree_view_set_model): fix small bug where + removing a tree from one model would remove all trees from that + model. + * gtk/gtktreeview.c (gtk_tree_view_range_changed): use range + changed signal instead. + Mon Apr 2 16:13:58 2001 Owen Taylor * gtk/gtkinvisible.c (gtk_invisible_style_set): Avoid diff --git a/docs/reference/gtk/gtk.hierarchy b/docs/reference/gtk/gtk.hierarchy index 4655ff729f..601aa73ff2 100644 --- a/docs/reference/gtk/gtk.hierarchy +++ b/docs/reference/gtk/gtk.hierarchy @@ -6,6 +6,7 @@ GObject GdkPixmap GdkColormap GtkSettings + GtkRcStyle GtkObject GtkWidget GtkMisc diff --git a/docs/reference/gtk/tmpl/gtk-unused.sgml b/docs/reference/gtk/tmpl/gtk-unused.sgml index a198a0c11e..353c586d4d 100644 --- a/docs/reference/gtk/tmpl/gtk-unused.sgml +++ b/docs/reference/gtk/tmpl/gtk-unused.sgml @@ -756,6 +756,14 @@ produce superscript and subscript. @widget: the object which received the signal. + + + + + +@widget: the object which received the signal. +@requisition: + This is an internally used function and should never be called from an diff --git a/docs/reference/gtk/tmpl/gtkrc.sgml b/docs/reference/gtk/tmpl/gtkrc.sgml index 041bbddd55..fe52fbe8a2 100644 --- a/docs/reference/gtk/tmpl/gtkrc.sgml +++ b/docs/reference/gtk/tmpl/gtkrc.sgml @@ -496,7 +496,6 @@ This can later be composited together with other #GtkRcStyle structures to form a #GtkStyle. -@parent_instance: @name: @bg_pixmap_name: @font_desc: diff --git a/docs/reference/gtk/tmpl/gtksignal.sgml b/docs/reference/gtk/tmpl/gtksignal.sgml index 1a5a4f3e27..1bb805c8ba 100644 --- a/docs/reference/gtk/tmpl/gtksignal.sgml +++ b/docs/reference/gtk/tmpl/gtksignal.sgml @@ -289,7 +289,7 @@ you don't want a return value. the callbacks. - + Given the name of the signal and the type of object it connects to, get the signal's identifying integer. Emitting the signal @@ -299,12 +299,13 @@ by number is somewhat faster than using the name each time. It also tries the ancestors of the given type. +@Returns: the signal's identifying number, or 0 if no signal was found. + @name: the signal's name, e.g. clicked. @object_type: the type that the signal operates on, e.g. #GTK_TYPE_BUTTON. -@Returns: the signal's identifying number, or 0 if no signal was found. - + Given the signal's identifier, find its name. @@ -312,8 +313,9 @@ Given the signal's identifier, find its name. Two different signals may have the same name, if they have differing types. -@signal_id: the signal's identifying number. @Returns: the signal name, or NULL if the signal number was invalid. + +@signal_id: the signal's identifying number. @@ -381,7 +383,7 @@ an array of GtkArgs instead of using C's varargs mechanism. followed by one which is a pointer to the return type. - + This function aborts a signal's current emission. @@ -395,11 +397,11 @@ It will print a warning if used on a signal which isn't being emitted. -@object: the object whose signal handlers you wish to stop. -@signal_id: the signal identifier, as returned by gtk_signal_lookup(). - @i: @s: + +@object: the object whose signal handlers you wish to stop. +@signal_id: the signal identifier, as returned by gtk_signal_lookup(). @@ -415,7 +417,7 @@ except it will lookup the signal id for you. @name: the name of the signal you wish to stop. - + Attach a function pointer and user data to a signal for a particular object. @@ -454,38 +456,38 @@ static void attach_print_signal(GtkButton* button, gint to_print) +@o: +@s: +@f: +@d: +@Returns: the connection id. + @object: the object associated with the signal, e.g. if a button is getting pressed, this is that button. @name: name of the signal. @func: function pointer to attach to the signal. @func_data: value to pass as to your function (through the marshaller). -@Returns: the connection id. - -@o: -@s: -@f: -@d: - + Attach a function pointer and user data to a signal so that this handler will be called after the other handlers. -@object: the object associated with the signal. -@name: name of the signal. -@func: function pointer to attach to the signal. -@func_data: value to pass as to your function (through the marshaller). -@Returns: the unique identifier for this attachment: the connection id. - @o: @s: @f: @d: +@Returns: the unique identifier for this attachment: the connection id. + +@object: the object associated with the signal. +@name: name of the signal. +@func: function pointer to attach to the signal. +@func_data: value to pass as to your function (through the marshaller). - + This function is for registering a callback that will call another object's callback. That is, @@ -506,21 +508,21 @@ gtk_signal_connect_object(button, "clicked", gtk_widget_show, window); +@o: +@s: +@f: +@d: +@Returns: the connection id. + @object: the object which emits the signal. @name: the name of the signal. @func: the function to callback. @slot_object: the object to pass as the first parameter to func. (Though it pretends to take an object, you can really pass any gpointer as the #slot_object .) -@Returns: the connection id. - -@o: -@s: -@f: -@d: - + Attach a signal hook to a signal, passing in an alternate object as the first parameter, and guaranteeing @@ -528,16 +530,16 @@ that the default handler and all normal handlers are called first. -@object: the object associated with the signal. -@name: name of the signal. -@func: function pointer to attach to the signal. -@slot_object: the object to pass as the first parameter to #func. -@Returns: the connection id. - @o: @s: @f: @d: +@Returns: the connection id. + +@object: the object associated with the signal. +@name: name of the signal. +@func: function pointer to attach to the signal. +@slot_object: the object to pass as the first parameter to #func. @@ -626,95 +628,98 @@ should signal the removal of this signal. @name: name of the signal. - + Destroy a user-defined handler connection. + @object: the object which the handler pertains to. @handler_id: the connection id. - + Destroy all connections for a particular object, with the given function-pointer and user-data. -@object: the object which emits the signal. -@func: the function pointer to search for. -@data: the user data to search for. - @o: @f: @d: + +@object: the object which emits the signal. +@func: the function pointer to search for. +@data: the user data to search for. - + Destroy all connections for a particular object, with the given user-data. -@object: the object which emits the signal. -@data: the user data to search for. - @o: @d: + +@object: the object which emits the signal. +@data: the user data to search for. - + Prevent an user-defined handler from being invoked. All other signal processing will go on as normal, but this particular handler will ignore it. + @object: the object which emits the signal to block. @handler_id: the connection id. - + Prevent a user-defined handler from being invoked, by reference to the user-defined handler's function pointer and user data. (It may result in multiple hooks being blocked, if you've called connect multiple times.) -@object: the object which emits the signal to block. -@func: the function pointer of the handler to block. -@data: the user data of the handler to block. - @o: @f: @d: + +@object: the object which emits the signal to block. +@func: the function pointer of the handler to block. +@data: the user data of the handler to block. - + Prevent all user-defined handlers with a certain user data from being invoked. -@object: the object which emits the signal we want to block. -@data: the user data of the handlers to block. - @o: @d: + +@object: the object which emits the signal we want to block. +@data: the user data of the handlers to block. - + Undo a block, by connection id. Note that undoing a block doesn't necessarily make the hook callable, because if you block a hook twice, you must unblock it twice. + @object: the object which emits the signal we want to unblock. @handler_id: the emission handler identifier, as returned by gtk_signal_connect(), etc. - + Undo a block, by function pointer and data. Note that undoing a block doesn't @@ -722,29 +727,29 @@ necessarily make the hook callable, because if you block a hook twice, you must unblock it twice. -@object: the object which emits the signal we want to unblock. -@func: the function pointer to search for. -@data: the user data to search for. - @o: @f: @d: + +@object: the object which emits the signal we want to unblock. +@func: the function pointer to search for. +@data: the user data to search for. - + Undo block(s), to all signals for a particular object with a particular user-data pointer -@object: the object which emits the signal we want to unblock. -@data: the user data to search for. - @o: @d: + +@object: the object which emits the signal we want to unblock. +@data: the user data to search for. - + Returns a connection id corresponding to a given signal id and object. @@ -755,36 +760,36 @@ may opt to not emit the signal if no one is attached anyway, thus saving the cost of building the arguments. +@i: +@s: +@b: +@Returns: the connection id, if a connection was found. 0 otherwise. + @object: the object to search for the desired user-defined handler. @signal_id: the number of the signal to search for. @may_be_blocked: whether it is acceptable to return a blocked handler. -@Returns: the connection id, if a connection was found. 0 otherwise. - -@i: -@s: -@b: - + Returns a connection id corresponding to a given signal id, object, function pointer and user data. +@o: +@s: +@b: +@f: +@d: +@Returns: the connection id, if a handler was found. 0 otherwise. + @object: the object to search for the desired handler. @signal_id: the number of the signal to search for. @may_be_blocked: whether it is acceptable to return a blocked handler. @func: the function pointer to search for. @data: the user data to search for. -@Returns: the connection id, if a handler was found. 0 otherwise. - -@o: -@s: -@b: -@f: -@d: diff --git a/docs/reference/gtk/tmpl/gtktypeutils.sgml b/docs/reference/gtk/tmpl/gtktypeutils.sgml index 6295e2dfa1..16a7e543fe 100644 --- a/docs/reference/gtk/tmpl/gtktypeutils.sgml +++ b/docs/reference/gtk/tmpl/gtktypeutils.sgml @@ -560,30 +560,33 @@ Create a new, unique type. @type_info: must not be null, and @type_info->type_name must also not be null. - + -@type: a GtkType @Returns: a pointer to the name of a type, or NULL if it has none. + +@type: a GtkType - + Get the internal representation of a type given its name. -@name: the name of a gtk type @Returns: a GtkType + +@name: the name of a gtk type - + -@type: a GtkType @Returns: the GtkType of the parent + +@type: a GtkType @@ -608,15 +611,16 @@ has all the proper initializers called. @Returns: gpointer to a GtkTypeObject - + Look in the type hierarchy to see if @type has @is_a_type among its ancestors. Do so with a simple lookup, not a loop. +@Returns: + @type: GtkType @is_a_type: GtkType -@Returns: diff --git a/docs/reference/gtk/tmpl/gtkwidget.sgml b/docs/reference/gtk/tmpl/gtkwidget.sgml index 28ac76363e..b6cd2b3ea0 100644 --- a/docs/reference/gtk/tmpl/gtkwidget.sgml +++ b/docs/reference/gtk/tmpl/gtkwidget.sgml @@ -1736,14 +1736,6 @@ a widget changes from un-anchored to anchored or vice-versa. @widget: the object which received the signal. @allocation: - - - - - -@widget: the object which received the signal. -@requisition: - diff --git a/gtk/gtkliststore.c b/gtk/gtkliststore.c index 6a876067ff..1a4d0710f8 100644 --- a/gtk/gtkliststore.c +++ b/gtk/gtkliststore.c @@ -633,7 +633,7 @@ gtk_list_store_set_value (GtkListStore *list_store, _gtk_tree_data_list_value_to_node (list, &real_value); else _gtk_tree_data_list_value_to_node (list, value); - gtk_tree_model_changed (GTK_TREE_MODEL (list_store), path, iter); + gtk_tree_model_range_changed (GTK_TREE_MODEL (list_store), path, iter, path, iter); gtk_tree_path_free (path); if (converted) g_value_unset (&real_value); @@ -669,7 +669,7 @@ gtk_list_store_set_value (GtkListStore *list_store, _gtk_tree_data_list_value_to_node (list, &real_value); else _gtk_tree_data_list_value_to_node (list, value); - gtk_tree_model_changed (GTK_TREE_MODEL (list_store), path, iter); + gtk_tree_model_range_changed (GTK_TREE_MODEL (list_store), path, iter, path, iter); gtk_tree_path_free (path); if (converted) g_value_unset (&real_value); @@ -1295,7 +1295,7 @@ gtk_list_store_drag_data_received (GtkTreeDragDest *drag_dest, G_SLIST (dest_iter.user_data)->data = copy_head; path = gtk_list_store_get_path (GTK_TREE_MODEL (tree_model), &dest_iter); - gtk_tree_model_changed (GTK_TREE_MODEL (tree_model), path, &dest_iter); + gtk_tree_model_range_changed (GTK_TREE_MODEL (tree_model), path, &dest_iter, path, &dest_iter); gtk_tree_path_free (path); } } diff --git a/gtk/gtkmarshal.list b/gtk/gtkmarshal.list index 1c7b472402..909da41df5 100644 --- a/gtk/gtkmarshal.list +++ b/gtk/gtkmarshal.list @@ -38,6 +38,7 @@ NONE:STRING,INT,POINTER VOID:BOOLEAN VOID:BOXED VOID:BOXED,BOXED +VOID:BOXED,BOXED,BOXED,BOXED VOID:BOXED,BOXED,POINTER VOID:BOXED,POINTER VOID:BOXED,OBJECT diff --git a/gtk/gtkmarshalers.list b/gtk/gtkmarshalers.list index 1c7b472402..909da41df5 100644 --- a/gtk/gtkmarshalers.list +++ b/gtk/gtkmarshalers.list @@ -38,6 +38,7 @@ NONE:STRING,INT,POINTER VOID:BOOLEAN VOID:BOXED VOID:BOXED,BOXED +VOID:BOXED,BOXED,BOXED,BOXED VOID:BOXED,BOXED,POINTER VOID:BOXED,POINTER VOID:BOXED,OBJECT diff --git a/gtk/gtktreemodel.c b/gtk/gtktreemodel.c index 2d7aa0171a..7356e7aae9 100644 --- a/gtk/gtktreemodel.c +++ b/gtk/gtktreemodel.c @@ -72,13 +72,15 @@ gtk_tree_model_base_init (gpointer g_class) if (! initialized) { - g_signal_newc ("changed", + g_signal_newc ("range_changed", GTK_TYPE_TREE_MODEL, G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GtkTreeModelIface, changed), + G_STRUCT_OFFSET (GtkTreeModelIface, range_changed), NULL, NULL, - gtk_marshal_VOID__BOXED_BOXED, - G_TYPE_NONE, 2, + gtk_marshal_VOID__BOXED_BOXED_BOXED_BOXED, + G_TYPE_NONE, 4, + GTK_TYPE_TREE_PATH, + GTK_TYPE_TREE_ITER, GTK_TYPE_TREE_PATH, GTK_TYPE_TREE_ITER); g_signal_newc ("inserted", @@ -1018,16 +1020,22 @@ gtk_tree_model_get_valist (GtkTreeModel *tree_model, } void -gtk_tree_model_changed (GtkTreeModel *tree_model, - GtkTreePath *path, - GtkTreeIter *iter) +gtk_tree_model_range_changed (GtkTreeModel *tree_model, + GtkTreePath *start_path, + GtkTreeIter *start_iter, + GtkTreePath *end_path, + GtkTreeIter *end_iter) { g_return_if_fail (tree_model != NULL); g_return_if_fail (GTK_IS_TREE_MODEL (tree_model)); - g_return_if_fail (path != NULL); - g_return_if_fail (iter != NULL); - - g_signal_emit_by_name (tree_model, "changed", path, iter); + g_return_if_fail (start_path != NULL); + g_return_if_fail (start_iter != NULL); + g_return_if_fail (end_path != NULL); + g_return_if_fail (end_iter != NULL); + + g_signal_emit_by_name (tree_model, "range_changed", + start_path, start_iter, + end_path, end_iter); } void diff --git a/gtk/gtktreemodel.h b/gtk/gtktreemodel.h index ead525f0ee..fc2b0bfd7a 100644 --- a/gtk/gtktreemodel.h +++ b/gtk/gtktreemodel.h @@ -56,9 +56,11 @@ struct _GtkTreeModelIface GTypeInterface g_iface; /* Signals */ - void (* changed) (GtkTreeModel *tree_model, - GtkTreePath *path, - GtkTreeIter *iter); + void (* range_changed) (GtkTreeModel *tree_model, + GtkTreePath *start_path, + GtkTreeIter *start_iter, + GtkTreePath *end_path, + GtkTreeIter *end_iter); void (* inserted) (GtkTreeModel *tree_model, GtkTreePath *path, GtkTreeIter *iter); @@ -211,9 +213,11 @@ void gtk_tree_model_get_valist (GtkTreeModel *tree_model, /* Signals */ -void gtk_tree_model_changed (GtkTreeModel *tree_model, - GtkTreePath *path, - GtkTreeIter *iter); +void gtk_tree_model_range_changed (GtkTreeModel *tree_model, + GtkTreePath *start_path, + GtkTreeIter *start_iter, + GtkTreePath *end_path, + GtkTreeIter *end_iter); void gtk_tree_model_inserted (GtkTreeModel *tree_model, GtkTreePath *path, GtkTreeIter *iter); diff --git a/gtk/gtktreemodelsort.c b/gtk/gtktreemodelsort.c index 1c86b567f5..91ea606d9c 100644 --- a/gtk/gtktreemodelsort.c +++ b/gtk/gtktreemodelsort.c @@ -54,9 +54,11 @@ static void gtk_tree_model_sort_init (GtkTreeModelSort * static void gtk_tree_model_sort_class_init (GtkTreeModelSortClass *tree_model_sort_class); static void gtk_tree_model_sort_tree_model_init (GtkTreeModelIface *iface); static void gtk_tree_model_sort_finalize (GObject *object); -static void gtk_tree_model_sort_changed (GtkTreeModel *model, - GtkTreePath *path, - GtkTreeIter *iter, +static void gtk_tree_model_sort_range_changed (GtkTreeModel *model, + GtkTreePath *start_path, + GtkTreeIter *start_iter, + GtkTreePath *end_path, + GtkTreeIter *end_iter, gpointer data); static void gtk_tree_model_sort_inserted (GtkTreeModel *model, GtkTreePath *path, @@ -253,8 +255,8 @@ gtk_tree_model_sort_set_model (GtkTreeModelSort *tree_model_sort, { tree_model_sort->changed_id = g_signal_connectc (child_model, - "changed", - gtk_tree_model_sort_changed, + "range_changed", + gtk_tree_model_sort_range_changed, tree_model_sort, FALSE); tree_model_sort->inserted_id = @@ -334,10 +336,12 @@ gtk_tree_model_sort_finalize (GObject *object) } static void -gtk_tree_model_sort_changed (GtkTreeModel *s_model, - GtkTreePath *s_path, - GtkTreeIter *s_iter, - gpointer data) +gtk_tree_model_sort_range_changed (GtkTreeModel *s_model, + GtkTreePath *s_start_path, + GtkTreeIter *s_start_iter, + GtkTreePath *s_end_path, + GtkTreeIter *s_end_iter, + gpointer data) { GtkTreeModelSort *tree_model_sort = GTK_TREE_MODEL_SORT (data); GtkTreePath *path; @@ -347,19 +351,19 @@ gtk_tree_model_sort_changed (GtkTreeModel *s_model, gboolean free_s_path = FALSE; gint index; - g_return_if_fail (s_path != NULL || s_iter != NULL); + g_return_if_fail (s_start_path != NULL || s_start_iter != NULL); - if (s_path == NULL) + if (s_start_path == NULL) { free_s_path = TRUE; - s_path = gtk_tree_model_get_path (s_model, s_iter); + s_start_path = gtk_tree_model_get_path (s_model, s_start_iter); } - path = gtk_tree_model_sort_convert_path_real (tree_model_sort, s_path, FALSE); + path = gtk_tree_model_sort_convert_path_real (tree_model_sort, s_start_path, FALSE); if (path == NULL) { if (free_s_path) - gtk_tree_path_free (s_path); + gtk_tree_path_free (s_start_path); return; } @@ -378,11 +382,11 @@ gtk_tree_model_sort_changed (GtkTreeModel *s_model, (GtkTreeIter *) elt, TRUE); - g_signal_emit_by_name (G_OBJECT (data), "changed", path, &iter); + gtk_tree_model_range_changed (GTK_TREE_MODEL (data), path, &iter, path, &iter); gtk_tree_path_free (path); if (free_s_path) - gtk_tree_path_free (s_path); + gtk_tree_path_free (s_start_path); } /* FALSE if the value was inserted, TRUE otherwise */ diff --git a/gtk/gtktreestore.c b/gtk/gtktreestore.c index e0bc0585ec..710ba3d6d7 100644 --- a/gtk/gtktreestore.c +++ b/gtk/gtktreestore.c @@ -652,7 +652,7 @@ gtk_tree_store_set_value (GtkTreeStore *tree_store, _gtk_tree_data_list_value_to_node (list, &real_value); else _gtk_tree_data_list_value_to_node (list, value); - gtk_tree_model_changed (GTK_TREE_MODEL (tree_store), path, iter); + gtk_tree_model_range_changed (GTK_TREE_MODEL (tree_store), path, iter, path, iter); gtk_tree_path_free (path); if (converted) g_value_unset (&real_value); @@ -686,7 +686,7 @@ gtk_tree_store_set_value (GtkTreeStore *tree_store, _gtk_tree_data_list_value_to_node (list, &real_value); else _gtk_tree_data_list_value_to_node (list, value); - gtk_tree_model_changed (GTK_TREE_MODEL (tree_store), path, iter); + gtk_tree_model_range_changed (GTK_TREE_MODEL (tree_store), path, iter, path, iter); gtk_tree_path_free (path); if (converted) g_value_unset (&real_value); @@ -1136,7 +1136,7 @@ copy_node_data (GtkTreeStore *tree_store, G_NODE (dest_iter->user_data)->data = copy_head; path = gtk_tree_store_get_path (GTK_TREE_MODEL (tree_store), dest_iter); - gtk_tree_model_changed (GTK_TREE_MODEL (tree_store), path, dest_iter); + gtk_tree_model_range_changed (GTK_TREE_MODEL (tree_store), path, dest_iter, path, dest_iter); gtk_tree_path_free (path); } diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index f3a1fb0cf7..74c7a559f4 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -171,9 +171,11 @@ static void gtk_tree_view_drag_data_received (GtkWidget *widget, static void gtk_tree_view_set_adjustments (GtkTreeView *tree_view, GtkAdjustment *hadj, GtkAdjustment *vadj); -static void gtk_tree_view_changed (GtkTreeModel *model, +static void gtk_tree_view_range_changed (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, + GtkTreePath *end_path, + GtkTreeIter *end_iter, gpointer data); static void gtk_tree_view_inserted (GtkTreeModel *model, GtkTreePath *path, @@ -2709,10 +2711,12 @@ gtk_tree_view_row_activated (GtkTreeView *tree_view, */ static void -gtk_tree_view_changed (GtkTreeModel *model, - GtkTreePath *path, - GtkTreeIter *iter, - gpointer data) +gtk_tree_view_range_changed (GtkTreeModel *model, + GtkTreePath *path, + GtkTreeIter *iter, + GtkTreePath *end_path, + GtkTreeIter *end_iter, + gpointer data) { GtkTreeView *tree_view = (GtkTreeView *)data; GtkRBTree *tree; @@ -3897,8 +3901,8 @@ gtk_tree_view_setup_model (GtkTreeView *tree_view) tree_view->priv->tree = NULL; g_signal_connectc (tree_view->priv->model, - "changed", - gtk_tree_view_changed, + "range_changed", + gtk_tree_view_range_changed, tree_view, FALSE); g_signal_connectc (tree_view->priv->model, @@ -3966,25 +3970,25 @@ gtk_tree_view_set_model (GtkTreeView *tree_view, if (GTK_TREE_VIEW_FLAG_SET (tree_view, GTK_TREE_VIEW_MODEL_SETUP)) { g_signal_handlers_disconnect_matched (G_OBJECT (tree_view->priv->model), - G_SIGNAL_MATCH_FUNC, + G_SIGNAL_MATCH_DATA, 0, 0, NULL, - gtk_tree_view_changed, NULL); + NULL, tree_view); g_signal_handlers_disconnect_matched (G_OBJECT (tree_view->priv->model), - G_SIGNAL_MATCH_FUNC, + G_SIGNAL_MATCH_DATA, 0, 0, NULL, - gtk_tree_view_inserted, NULL); + NULL, tree_view); g_signal_handlers_disconnect_matched (G_OBJECT (tree_view->priv->model), - G_SIGNAL_MATCH_FUNC, + G_SIGNAL_MATCH_DATA, 0, 0, NULL, - gtk_tree_view_has_child_toggled, NULL); + NULL, tree_view); g_signal_handlers_disconnect_matched (G_OBJECT (tree_view->priv->model), - G_SIGNAL_MATCH_FUNC, + G_SIGNAL_MATCH_DATA, 0, 0, NULL, - gtk_tree_view_deleted, NULL); + NULL, tree_view); g_signal_handlers_disconnect_matched (G_OBJECT (tree_view->priv->model), - G_SIGNAL_MATCH_FUNC, + G_SIGNAL_MATCH_DATA, 0, 0, NULL, - gtk_tree_view_reordered, NULL); + NULL, tree_view); _gtk_rbtree_free (tree_view->priv->tree); } -- GitLab