diff options
author | Ettore Perazzoli <ettore@src.gnome.org> | 2002-09-18 03:27:04 +0800 |
---|---|---|
committer | Ettore Perazzoli <ettore@src.gnome.org> | 2002-09-18 03:27:04 +0800 |
commit | e774bd7f2d66feae1508f52988585347ae0fcbc8 (patch) | |
tree | 7573eb933eb6feaa48fe8cf2ab7b07f45c0b7c9e /shell/e-folder.c | |
parent | bae24dcd130a6e0848b1afbf345b499ddc5469e6 (diff) | |
download | gsoc2013-evolution-e774bd7f2d66feae1508f52988585347ae0fcbc8.tar gsoc2013-evolution-e774bd7f2d66feae1508f52988585347ae0fcbc8.tar.gz gsoc2013-evolution-e774bd7f2d66feae1508f52988585347ae0fcbc8.tar.bz2 gsoc2013-evolution-e774bd7f2d66feae1508f52988585347ae0fcbc8.tar.lz gsoc2013-evolution-e774bd7f2d66feae1508f52988585347ae0fcbc8.tar.xz 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.c | 9 |
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]); } |