From e774bd7f2d66feae1508f52988585347ae0fcbc8 Mon Sep 17 00:00:00 2001 From: Ettore Perazzoli Date: Tue, 17 Sep 2002 19:27:04 +0000 Subject: [Fix #28451.] * e-storage-set-view.c: New member sort_idle_id in EStorageSetViewPrivate. (init): Init to zero. (impl_destroy): Remove the idle source if not zero. (queue_resort): New. (sort_idle_callback): Idle function to sort. (setup_folder_changed_callback): New. (new_folder_cb): Call it on the new folder so we get the callback for new folders too. (popup_folder_menu): Ref the folder before popping up the menu, unref it after popping it down [the folder might be unreffed in gnome_popup_menu_do_popup_modal() because of a folder action]. (new_storage_cb): Just queue_resort() instead of sorting. (new_folder_cb): Likewise. (insert_folders): Likewise. (insert_storages): Likewise. (folder_changed_cb): Queue a resort here too. * e-folder.c (class_init): Set up "name_changed" signal. (e_folder_set_name): Emit "name_changed". * e-folder.h: New signal "name_changed". svn path=/trunk/; revision=18093 --- shell/e-folder.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'shell/e-folder.c') diff --git a/shell/e-folder.c b/shell/e-folder.c index 64083a6d31..2910963deb 100644 --- a/shell/e-folder.c +++ b/shell/e-folder.c @@ -68,6 +68,7 @@ struct _EFolderPrivate { enum { CHANGED, + NAME_CHANGED, LAST_SIGNAL }; @@ -148,6 +149,13 @@ class_init (EFolderClass *klass) gtk_marshal_NONE__NONE, GTK_TYPE_NONE, 0); + signals[NAME_CHANGED] = gtk_signal_new ("name_changed", + GTK_RUN_FIRST, + object_class->type, + GTK_SIGNAL_OFFSET (EFolderClass, name_changed), + gtk_marshal_NONE__NONE, + GTK_TYPE_NONE, 0); + gtk_object_class_add_signals (object_class, signals, LAST_SIGNAL); klass->save_info = save_info; @@ -336,6 +344,7 @@ e_folder_set_name (EFolder *folder, g_free (folder->priv->name); folder->priv->name = g_strdup (name); + gtk_signal_emit (GTK_OBJECT (folder), signals[NAME_CHANGED]); gtk_signal_emit (GTK_OBJECT (folder), signals[CHANGED]); } -- cgit v1.2.3