cancel_window_operations (window);
/* Fake the window system, make it think that there is no window */
- g_signal_emit (self, signals[WINDOW_LIST_EMPTY_SIGNAL], 0);
+ if (modest_window_mgr_num_windows (self) == 0)
+ g_signal_emit (self, signals[WINDOW_LIST_EMPTY_SIGNAL], 0);
no_propagate = TRUE;
}
gtk_widget_destroy (win->data);
/* If there are no more windows registered emit the signal */
- if (priv->window_list == NULL && priv->banner_counter == 0)
+ if (modest_window_mgr_num_windows (self) == 0)
+/* if (priv->window_list == NULL && priv->banner_counter == 0) */
g_signal_emit (self, signals[WINDOW_LIST_EMPTY_SIGNAL], 0);
}
if (priv->window_list)
num_windows = g_list_length (priv->window_list);
+ /* Do not take into account the main window if it was hidden */
+ if (priv->main_window && !GTK_WIDGET_VISIBLE (priv->main_window))
+ num_windows--;
+
return num_windows + priv->banner_counter;
}
priv = MODEST_WINDOW_MGR_GET_PRIVATE (self);
priv->banner_counter--;
- if (priv->window_list == NULL && priv->banner_counter == 0) {
+/* if (priv->window_list == NULL && priv->banner_counter == 0) */
+ if (modest_window_mgr_num_windows (self) == 0)
g_signal_emit (self, signals[WINDOW_LIST_EMPTY_SIGNAL], 0);
- }
-
}