#include "modest-tny-folder.h"
#include "modest-folder-window.h"
#include "modest-accounts-window.h"
-#include "modest-maemo-utils.h"
#include "modest-utils.h"
#include "modest-tny-msg.h"
#include "modest-tny-account.h"
static GList *modest_gtk_window_mgr_get_window_list (ModestWindowMgr *self);
static gboolean modest_gtk_window_mgr_close_all_windows (ModestWindowMgr *self);
static gboolean modest_gtk_window_mgr_close_all_but_initial (ModestWindowMgr *self);
-static gboolean window_has_modals (ModestWindow *window);
+static gboolean shell_has_modals (ModestShell *window);
static ModestWindow *modest_gtk_window_mgr_show_initial_window (ModestWindowMgr *self);
static ModestWindow *modest_gtk_window_mgr_get_current_top (ModestWindowMgr *self);
static gboolean modest_gtk_window_mgr_screen_is_on (ModestWindowMgr *self);
priv->modal_handler_uids = NULL;
priv->shell = modest_shell_new ();
+ gtk_widget_show (priv->shell);
}
static void
{
ModestGtkWindowMgrPrivate *priv = NULL;
gboolean ret_value = FALSE;
- GtkWidget *window;
+ ModestWindow *window;
gboolean failed = FALSE;
g_return_val_if_fail (MODEST_IS_GTK_WINDOW_MGR (self), FALSE);
ModestWindow *current_top;
g_return_val_if_fail (MODEST_IS_GTK_WINDOW_MGR (self), FALSE);
- g_return_val_if_fail (GTK_IS_WINDOW (window), FALSE);
priv = MODEST_GTK_WINDOW_MGR_GET_PRIVATE (self);
if (MODEST_IS_FOLDER_WINDOW (current_top) && MODEST_IS_FOLDER_WINDOW (window)) {
gboolean retval;
- retval = modest_shell_delete_window (MODEST_SHELL (priv->shell), shell);
+ retval = modest_shell_delete_window (MODEST_SHELL (priv->shell), MODEST_WINDOW (window));
if (retval) {
gtk_window_present (GTK_WINDOW (priv->shell));
/* If the current view has modal dialogs then
we fail to register the new view */
if ((current_top != NULL) &&
- window_has_modals (MODEST_WINDOW (current_top))) {
+ shell_has_modals (MODEST_SHELL (priv->shell))) {
/* Window on top but it has opened dialogs */
goto fail;
}
}
static gboolean
-window_has_modals (ModestWindow *window)
+shell_has_modals (ModestShell *shell)
{
GList *toplevels;
GList *node;
toplevels = gtk_window_list_toplevels ();
for (node = toplevels; node != NULL; node = g_list_next (node)) {
if (GTK_IS_WINDOW (node->data) &&
- gtk_window_get_transient_for (GTK_WINDOW (node->data)) == GTK_WINDOW (priv->shell) &&
+ gtk_window_get_transient_for (GTK_WINDOW (node->data)) == GTK_WINDOW (shell) &&
GTK_WIDGET_VISIBLE (node->data)) {
retvalue = TRUE;
break;
GdkEvent *event,
ModestGtkWindowMgr *self)
{
+ ModestGtkWindowMgrPrivate *priv;
gboolean no_propagate = FALSE;
+ priv = MODEST_GTK_WINDOW_MGR_GET_PRIVATE (self);
+
/* Do not close the window if it has modals on top */
- if (!MODEST_IS_MSG_EDIT_WINDOW (window) && window_has_modals (window))
+ if (!MODEST_IS_MSG_EDIT_WINDOW (window) && shell_has_modals (MODEST_SHELL (priv->shell)))
return TRUE;
if (MODEST_IS_MSG_EDIT_WINDOW (window)) {
{
ModestGtkWindowMgrPrivate *priv;
GList *toplevel_list;
- GtkWidget *current_top, *toplevel;
+ GtkWidget *toplevel;
g_return_val_if_fail (MODEST_IS_GTK_WINDOW_MGR (self), NULL);
priv = MODEST_GTK_WINDOW_MGR_GET_PRIVATE (self);
{
gint num_windows, i;
gboolean retval;
- HildonWindowStack *stack;
-
- stack = hildon_window_stack_get_default ();
- g_return_if_fail (stack);
+ ModestGtkWindowMgrPrivate *priv;
- num_windows = hildon_window_stack_size (stack);
+ priv = MODEST_GTK_WINDOW_MGR_GET_PRIVATE(data);
+ num_windows = modest_shell_count_windows (MODEST_SHELL (priv->shell));
for (i = 0; i < (num_windows - 1); i++) {
- GtkWidget *current_top;
+ ModestWindow *current_top;
/* Close window */
current_top = modest_shell_peek_window (MODEST_SHELL (priv->shell));
gpointer user_data)
{
ModestWindow *current_top;
+ ModestGtkWindowMgrPrivate *priv;
+
+ priv = MODEST_GTK_WINDOW_MGR_GET_PRIVATE (user_data);
/* Ignore transport account removals */
if (TNY_IS_TRANSPORT_ACCOUNT (account))
modal dialog would otherwise, prevent the
windows from being closed */
if (!strcmp (acc_name, modest_window_get_active_account (current_top)))
- g_idle_add (on_idle_close_all_but_first, NULL);
+ g_idle_add (on_idle_close_all_but_first, (gpointer) priv->shell);
}
}
static ModestWindow *
modest_gtk_window_mgr_get_current_top (ModestWindowMgr *self)
{
- ModestWindow *initial_window = NULL;
ModestGtkWindowMgrPrivate *priv;
priv = MODEST_GTK_WINDOW_MGR_GET_PRIVATE (self);
modest_gtk_window_mgr_close_all_but_initial (ModestWindowMgr *self)
{
ModestWindow *top;
+ ModestGtkWindowMgrPrivate *priv;
+
+ priv = MODEST_GTK_WINDOW_MGR_GET_PRIVATE(self);
/* Exit if there are no windows */
if (!modest_window_mgr_get_num_windows (self)) {
/* Close all but first */
top = modest_window_mgr_get_current_top (self);
if (!MODEST_IS_ACCOUNTS_WINDOW (top))
- close_all_but_first (NULL);
+ close_all_but_first ((gpointer) priv->shell);
/* If some cannot be closed return */
top = modest_window_mgr_get_current_top (self);