* The account dialog is now modal (registered as modal in the window manager) this...
[modest] / src / modest-widget-memory.c
index fc894b9..b480fd2 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,27 +240,13 @@ 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);
+       key = _modest_widget_memory_get_keyname (name, MODEST_WIDGET_MEMORY_PARAM_POS); 
+       percent = modest_conf_get_int (conf, key, NULL);
        
-       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;
-               
-                       
-               gtk_paned_set_position (paned, pos);
-       } else {
-               /* The initial position must follow the 30/70 rule */
-               gtk_paned_set_position (paned, GTK_WIDGET(paned)->requisition.width/3);
-       }
+       pos = GTK_WIDGET (paned)->allocation.width * percent /100;
+       gtk_paned_set_position (paned, pos);
 
        g_free (key);
        return TRUE;