diff options
Diffstat (limited to 'calendar/gui/dialogs')
-rw-r--r-- | calendar/gui/dialogs/comp-editor.c | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c index 68b240cc25..4af998eb26 100644 --- a/calendar/gui/dialogs/comp-editor.c +++ b/calendar/gui/dialogs/comp-editor.c @@ -182,6 +182,14 @@ enum { static guint comp_editor_signals[LAST_SIGNAL] = { 0 }; +static void +attachment_store_changed_cb (CompEditor *editor) +{ + /* Mark the editor as changed so it prompts about unsaved + changes on close */ + comp_editor_set_changed (editor, TRUE); +} + static GSList * get_attachment_list (CompEditor *editor) { @@ -1513,6 +1521,7 @@ comp_editor_init (CompEditor *editor) { CompEditorPrivate *priv; EAttachmentView *view; + EAttachmentStore *store; GdkDragAction drag_actions; GtkTargetList *target_list; GtkTargetEntry *targets; @@ -1646,6 +1655,18 @@ comp_editor_init (CompEditor *editor) gtk_window_set_type_hint ( GTK_WINDOW (editor), GDK_WINDOW_TYPE_HINT_NORMAL); + + /* Listen for attachment store changes. */ + + store = e_attachment_view_get_store (view); + + g_signal_connect_swapped ( + store, "row-deleted", + G_CALLBACK (attachment_store_changed_cb), editor); + + g_signal_connect_swapped ( + store, "row-inserted", + G_CALLBACK (attachment_store_changed_cb), editor); } static gboolean @@ -1698,14 +1719,6 @@ prompt_and_save_changes (CompEditor *editor, gboolean send) } } -static void -attachment_store_changed_cb (CompEditor *editor) -{ - /* Mark the editor as changed so it prompts about unsaved - changes on close */ - comp_editor_set_changed (editor, TRUE); -} - /* Menu callbacks */ static void |