X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fwidgets%2Fmodest-window-mgr.c;h=528fa335add5d7f72904de4c61ac31f6f1a3fd0d;hb=b267362311d6c82f71987833ad14ddfaedc21390;hp=7758ca5ec4f53399137f502e351e337df9e9595a;hpb=8790badc52054c9d03d55037b10599bf828008d4;p=modest diff --git a/src/widgets/modest-window-mgr.c b/src/widgets/modest-window-mgr.c index 7758ca5..528fa33 100644 --- a/src/widgets/modest-window-mgr.c +++ b/src/widgets/modest-window-mgr.c @@ -53,6 +53,7 @@ enum { typedef struct _ModestWindowMgrPrivate ModestWindowMgrPrivate; struct _ModestWindowMgrPrivate { GList *window_list; + ModestWindow *main_window; gboolean fullscreen_mode; gboolean show_toolbars; gboolean show_toolbars_fullscreen; @@ -109,6 +110,7 @@ modest_window_mgr_init (ModestWindowMgr *obj) priv = MODEST_WINDOW_MGR_GET_PRIVATE(obj); priv->window_list = NULL; + priv->main_window = NULL; priv->fullscreen_mode = FALSE; /* Could not initialize it from gconf, singletons are not @@ -134,6 +136,9 @@ modest_window_mgr_finalize (GObject *obj) priv->window_list = NULL; } + /* Do not unref priv->main_window because it does not hold a + new reference */ + G_OBJECT_CLASS(parent_class)->finalize (obj); } @@ -163,6 +168,16 @@ modest_window_mgr_register_window (ModestWindowMgr *self, return; } + /* Check that it's not a second main window */ + if (MODEST_IS_MAIN_WINDOW (window)) { + if (priv->main_window) { + g_warning ("Trying to register a second main window"); + return; + } else { + priv->main_window = window; + } + } + /* Add to list. Keep a reference to the window */ g_object_ref (window); priv->window_list = g_list_prepend (priv->window_list, window); @@ -189,7 +204,7 @@ modest_window_mgr_register_window (ModestWindowMgr *self, show = priv->show_toolbars_fullscreen; else show = priv->show_toolbars; - modest_window_view_toolbar (window, show); + modest_window_show_toolbar (window, show); } static void @@ -329,11 +344,11 @@ modest_window_mgr_set_fullscreen_mode (ModestWindowMgr *self, while (win) { if (on) { gtk_window_fullscreen (GTK_WINDOW (win->data)); - modest_window_view_toolbar (MODEST_WINDOW (win->data), + modest_window_show_toolbar (MODEST_WINDOW (win->data), priv->show_toolbars_fullscreen); } else { gtk_window_unfullscreen (GTK_WINDOW (win->data)); - modest_window_view_toolbar (MODEST_WINDOW (win->data), + modest_window_show_toolbar (MODEST_WINDOW (win->data), priv->show_toolbars); } win = g_list_next (win); @@ -386,9 +401,21 @@ modest_window_mgr_show_toolbars (ModestWindowMgr *self, GList *win = priv->window_list; while (win) { - modest_window_view_toolbar (MODEST_WINDOW (win->data), + modest_window_show_toolbar (MODEST_WINDOW (win->data), show_toolbars); win = g_list_next (win); } } } + +ModestWindow* +modest_window_mgr_get_main_window (ModestWindowMgr *self) +{ + ModestWindowMgrPrivate *priv; + + g_return_val_if_fail (MODEST_IS_WINDOW_MGR (self), NULL); + + priv = MODEST_WINDOW_MGR_GET_PRIVATE (self); + + return priv->main_window; +}