[anjal] Fix an issue where there is a race between loading the folder tree and creating the view. At times s
- From: Srinivasa Ragavan <sragavan src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [anjal] Fix an issue where there is a race between loading the folder tree and creating the view. At times s
- Date: Wed, 20 Jan 2010 13:41:29 +0000 (UTC)
commit bfc4f232a6f21a434fdb0b964ab79f15ac281cae
Author: Srinivasa Ragavan <sragavan gnome org>
Date: Wed Jan 20 19:09:13 2010 +0530
Fix an issue where there is a race between loading the folder tree and
creating the view. At times selected folder isn't loaded on startup.
src/module/anjal-shell-view-private.c | 22 ++++++++++++++++++++--
src/module/anjal-shell-view-private.h | 1 +
2 files changed, 21 insertions(+), 2 deletions(-)
---
diff --git a/src/module/anjal-shell-view-private.c b/src/module/anjal-shell-view-private.c
index a48784e..1832af6 100644
--- a/src/module/anjal-shell-view-private.c
+++ b/src/module/anjal-shell-view-private.c
@@ -22,6 +22,7 @@
#include "anjal-shell-view-private.h"
#include <shell/e-shell-searchbar.h>
+
static void
mail_shell_view_folder_tree_selected_cb (AnjalShellView *mail_shell_view,
const gchar *full_name,
@@ -38,8 +39,16 @@ mail_shell_view_folder_tree_selected_cb (AnjalShellView *mail_shell_view,
!(flags & CAMEL_FOLDER_NOSELECT) &&
full_name != NULL;
- anjal_mail_view_set_folder_uri (mail_shell_view->priv->view, uri);
- e_shell_view_update_actions (shell_view);
+ if (mail_shell_view->priv->view) {
+ anjal_mail_view_set_folder_uri (mail_shell_view->priv->view, uri);
+ e_shell_view_update_actions (shell_view);
+ } else {
+ if (mail_shell_view->priv->pending_uri) {
+ g_warning ("Ignoring loading %s\n", mail_shell_view->priv->pending_uri);
+ g_free (mail_shell_view->priv->pending_uri);
+ }
+ mail_shell_view->priv->pending_uri = g_strdup(uri);
+ }
}
static gboolean
@@ -144,13 +153,22 @@ anjal_shell_view_set_mail_view (AnjalShellView *mail_shell_view,
mail_shell_sidebar = ANJAL_SHELL_SIDEBAR (shell_sidebar);
folder_tree = anjal_shell_sidebar_get_folder_tree (mail_shell_sidebar);
anjal_mail_view_set_folder_tree (mail_shell_view->priv->view, (GtkWidget *)folder_tree);
+
+ if (priv->pending_uri) {
+ anjal_mail_view_set_folder_uri (mail_shell_view->priv->view, priv->pending_uri);
+ e_shell_view_update_actions (shell_view);
+ g_free (priv->pending_uri);
+ priv->pending_uri = NULL;
+ }
}
void
anjal_shell_view_private_init (AnjalShellView *mail_shell_view,
EShellViewClass *shell_view_class)
{
+ AnjalShellViewPrivate *priv = mail_shell_view->priv;
+ priv->pending_uri = NULL;
}
static void
diff --git a/src/module/anjal-shell-view-private.h b/src/module/anjal-shell-view-private.h
index 53b3226..947d7ba 100644
--- a/src/module/anjal-shell-view-private.h
+++ b/src/module/anjal-shell-view-private.h
@@ -150,6 +150,7 @@ struct _AnjalShellViewPrivate {
guint show_deleted : 1;
AnjalMailView *view;
+ char *pending_uri;
};
void anjal_shell_view_private_init
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]