diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2013-11-26 04:15:22 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2013-11-26 04:38:30 +0800 |
commit | 66923efa0ce1cb1d00440010b461ad463a200186 (patch) | |
tree | 52529abb45c6d8f84fa789281e6c866b7bc7abd6 /modules | |
parent | 2a69370d81d5adf74450ef19b36d9e7e400ff4d5 (diff) | |
download | gsoc2013-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.c | 12 |
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)) { |