* src/widgets/modest-account-view.c:
authorJose Dapena Paz <jdapena@igalia.com>
Thu, 27 Sep 2007 21:28:46 +0000 (21:28 +0000)
committerJose Dapena Paz <jdapena@igalia.com>
Thu, 27 Sep 2007 21:28:46 +0000 (21:28 +0000)
        * (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

src/modest-widget-memory.c
src/widgets/modest-account-view.c

index fc894b9..d376371 100644 (file)
@@ -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 */
index e09f6b0..20a9866 100644 (file)
@@ -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