From: Jose Dapena Paz Date: Thu, 27 Sep 2007 21:28:46 +0000 (+0000) Subject: * src/widgets/modest-account-view.c: X-Git-Tag: git_migration_finished~2293 X-Git-Url: http://git.maemo.org/git/?p=modest;a=commitdiff_plain;h=b595df146cd98e992de9fc91ff3aeeb71221f24b;ds=sidebyside * src/widgets/modest-account-view.c: * (on_default_account_changed): Now we check if there's an account name, as it was crashing when we removed the last available account. * src/modest-widget-memory.c: * (restore_settings_paned, save_settings_paned): now we store in ModestConf the percent of the total the separator is set, instead of the pixel position. This way, we correctly recover the position (fixes NB#63405). pmo-trunk-r3434 --- diff --git a/src/modest-widget-memory.c b/src/modest-widget-memory.c index fc894b9..d376371 100644 --- a/src/modest-widget-memory.c +++ b/src/modest-widget-memory.c @@ -219,15 +219,16 @@ static gboolean save_settings_paned (ModestConf *conf, GtkPaned *paned, const gchar *name) { gchar *key; - int pos; + int pos, percent; /* Don't save the paned position if it's not visible, * because it could not be correct: */ if (GTK_WIDGET_VISIBLE (GTK_WIDGET (paned)) && GTK_WIDGET_REALIZED (GTK_WIDGET (paned))) { pos = gtk_paned_get_position (paned); - + percent = pos * 100 / GTK_WIDGET (paned)->allocation.width; + key = _modest_widget_memory_get_keyname (name, MODEST_WIDGET_MEMORY_PARAM_POS); - modest_conf_set_int (conf, key, pos, NULL); + modest_conf_set_int (conf, key, percent, NULL); g_free (key); } @@ -239,22 +240,14 @@ static gboolean restore_settings_paned (ModestConf *conf, GtkPaned *paned, const gchar *name) { gchar *key; - int pos; + int percent, pos; key = _modest_widget_memory_get_keyname (name, MODEST_WIDGET_MEMORY_PARAM_POS); if (modest_conf_key_exists (conf, key, NULL)) { - pos = modest_conf_get_int (conf, key, NULL); - - /* TODO: Remove this hack so that paned positions can really be used. - * The paned position is incorrectly saved somehow before its even visible, - * when we show the main window only some time after creating it, - * so this prevents a wrong value from being used. */ - const gint max = (GTK_WIDGET(paned)->allocation.width)/3; - if (pos > max) - pos = max; + percent = modest_conf_get_int (conf, key, NULL); - + pos = GTK_WIDGET (paned)->allocation.width * percent /100; gtk_paned_set_position (paned, pos); } else { /* The initial position must follow the 30/70 rule */ diff --git a/src/widgets/modest-account-view.c b/src/widgets/modest-account-view.c index e09f6b0..20a9866 100644 --- a/src/widgets/modest-account-view.c +++ b/src/widgets/modest-account-view.c @@ -610,7 +610,7 @@ on_default_account_changed (ModestAccountMgr *mgr, -1); /* Update the default account column */ - if (!strcmp (name, default_account_name)) + if ((default_account_name != NULL) && (!strcmp (name, default_account_name))) gtk_list_store_set (GTK_LIST_STORE (model), &iter, MODEST_ACCOUNT_VIEW_IS_DEFAULT_COLUMN, TRUE, -1); else