* (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
save_settings_paned (ModestConf *conf, GtkPaned *paned, const gchar *name)
{
gchar *key;
save_settings_paned (ModestConf *conf, GtkPaned *paned, const gchar *name)
{
gchar *key;
/* 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);
/* 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);
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);
restore_settings_paned (ModestConf *conf, GtkPaned *paned, const gchar *name)
{
gchar *key;
restore_settings_paned (ModestConf *conf, GtkPaned *paned, const gchar *name)
{
gchar *key;
key = _modest_widget_memory_get_keyname (name, MODEST_WIDGET_MEMORY_PARAM_POS);
if (modest_conf_key_exists (conf, key, NULL)) {
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 */
gtk_paned_set_position (paned, pos);
} else {
/* The initial position must follow the 30/70 rule */
-1);
/* Update the default account column */
-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
gtk_list_store_set (GTK_LIST_STORE (model), &iter,
MODEST_ACCOUNT_VIEW_IS_DEFAULT_COLUMN, TRUE, -1);
else