aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-folder.c
diff options
context:
space:
mode:
authorEttore Perazzoli <ettore@src.gnome.org>2002-09-18 03:27:04 +0800
committerEttore Perazzoli <ettore@src.gnome.org>2002-09-18 03:27:04 +0800
commite774bd7f2d66feae1508f52988585347ae0fcbc8 (patch)
tree7573eb933eb6feaa48fe8cf2ab7b07f45c0b7c9e /shell/e-folder.c
parentbae24dcd130a6e0848b1afbf345b499ddc5469e6 (diff)
downloadgsoc2013-evolution-e774bd7f2d66feae1508f52988585347ae0fcbc8.tar.gz
gsoc2013-evolution-e774bd7f2d66feae1508f52988585347ae0fcbc8.tar.zst
gsoc2013-evolution-e774bd7f2d66feae1508f52988585347ae0fcbc8.zip
[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
Diffstat (limited to 'shell/e-folder.c')
-rw-r--r--shell/e-folder.c9
1 files changed, 9 insertions, 0 deletions
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]);
}