aboutsummaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2013-11-26 04:15:22 +0800
committerMatthew Barnes <mbarnes@redhat.com>2013-11-26 04:38:30 +0800
commit66923efa0ce1cb1d00440010b461ad463a200186 (patch)
tree52529abb45c6d8f84fa789281e6c866b7bc7abd6 /modules
parent2a69370d81d5adf74450ef19b36d9e7e400ff4d5 (diff)
downloadgsoc2013-evolution-66923efa0ce1cb1d00440010b461ad463a200186.tar
gsoc2013-evolution-66923efa0ce1cb1d00440010b461ad463a200186.tar.gz
gsoc2013-evolution-66923efa0ce1cb1d00440010b461ad463a200186.tar.bz2
gsoc2013-evolution-66923efa0ce1cb1d00440010b461ad463a200186.tar.lz
gsoc2013-evolution-66923efa0ce1cb1d00440010b461ad463a200186.tar.xz
gsoc2013-evolution-66923efa0ce1cb1d00440010b461ad463a200186.tar.zst
gsoc2013-evolution-66923efa0ce1cb1d00440010b461ad463a200186.zip
Bug 712668 - Disable message recovery after initial scan
This prevents Evolution from prompting to restore what it thinks are orphaned messages during an Evolution session. This is triggered by a shell window emitting another "map-event" signal for some reason. Some GNOME Shell users have reported seeing this.
Diffstat (limited to 'modules')
-rw-r--r--modules/composer-autosave/e-composer-registry.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/modules/composer-autosave/e-composer-registry.c b/modules/composer-autosave/e-composer-registry.c
index b8bb3c5293..faf58a1a65 100644
--- a/modules/composer-autosave/e-composer-registry.c
+++ b/modules/composer-autosave/e-composer-registry.c
@@ -35,6 +35,7 @@
struct _EComposerRegistryPrivate {
GQueue composers;
gboolean orphans_restored;
+ gulong map_event_handler_id;
};
G_DEFINE_DYNAMIC_TYPE (
@@ -127,6 +128,12 @@ composer_registry_map_event_cb (GtkWindow *parent,
composer_registry_restore_orphans (registry, parent);
registry->priv->orphans_restored = TRUE;
+ /* This is a one-time-only signal handler.
+ * Disconnect from subsequent map events. */
+ g_signal_handler_disconnect (
+ parent, registry->priv->map_event_handler_id);
+ registry->priv->map_event_handler_id = 0;
+
return FALSE;
}
@@ -148,10 +155,13 @@ composer_registry_window_added_cb (GtkApplication *application,
/* Offer to restore any orphaned auto-save files from the
* previous session once the first EShellWindow is mapped. */
if (E_IS_SHELL_WINDOW (window) && !registry->priv->orphans_restored) {
- g_signal_connect (
+ gulong handler_id;
+
+ handler_id = g_signal_connect (
window, "map-event",
G_CALLBACK (composer_registry_map_event_cb),
registry);
+ registry->priv->map_event_handler_id = handler_id;
/* Track the new composer window. */
} else if (E_IS_MSG_COMPOSER (window)) {