diff options
Diffstat (limited to 'shell')
-rw-r--r-- | shell/e-shell.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/shell/e-shell.c b/shell/e-shell.c index a9c2fdc22f..1e8cd3c0f9 100644 --- a/shell/e-shell.c +++ b/shell/e-shell.c @@ -46,10 +46,6 @@ #include "e-shell-window.h" #include "e-shell-utils.h" -#define E_SHELL_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE \ - ((obj), E_TYPE_SHELL, EShellPrivate)) - struct _EShellPrivate { GQueue alerts; EShellSettings *settings; @@ -697,7 +693,13 @@ shell_dispose (GObject *object) EShellPrivate *priv; EAlert *alert; - priv = E_SHELL_GET_PRIVATE (object); + priv = E_SHELL (object)->priv; + + while ((alert = g_queue_pop_head (&priv->alerts)) != NULL) { + g_signal_handlers_disconnect_by_func ( + alert, shell_alert_response_cb, object); + g_object_unref (alert); + } while ((alert = g_queue_pop_head (&priv->alerts)) != NULL) { g_signal_handlers_disconnect_by_func ( @@ -745,7 +747,7 @@ shell_finalize (GObject *object) { EShellPrivate *priv; - priv = E_SHELL_GET_PRIVATE (object); + priv = E_SHELL (object)->priv; g_hash_table_destroy (priv->backends_by_name); g_hash_table_destroy (priv->backends_by_scheme); @@ -1160,7 +1162,8 @@ e_shell_init (EShell *shell) GtkIconTheme *icon_theme; EggSMClient *sm_client; - shell->priv = E_SHELL_GET_PRIVATE (shell); + shell->priv = G_TYPE_INSTANCE_GET_PRIVATE ( + shell, E_TYPE_SHELL, EShellPrivate); backends_by_name = g_hash_table_new (g_str_hash, g_str_equal); backends_by_scheme = g_hash_table_new (g_str_hash, g_str_equal); |