Commit 9ad1d76a authored by Paolo Bacchilega's avatar Paolo Bacchilega
Browse files

Save and restore the paned position correctly

parent b63b1927
......@@ -1505,6 +1505,7 @@ _gth_browser_close_final_step (gpointer user_data)
gboolean last_window;
GdkWindowState state;
gboolean maximized;
int pos;
browser_list = g_list_remove (browser_list, browser);
last_window = gth_window_get_n_windows () == 1;
......@@ -1521,9 +1522,17 @@ _gth_browser_close_final_step (gpointer user_data)
eel_gconf_set_integer (PREF_UI_WINDOW_HEIGHT, height);
}
eel_gconf_set_integer (PREF_UI_BROWSER_SIDEBAR_WIDTH, gtk_paned_get_position (GTK_PANED (browser->priv->browser_container)));
eel_gconf_set_integer (PREF_UI_VIEWER_SIDEBAR_WIDTH, gtk_paned_get_position (GTK_PANED (browser->priv->viewer_pane)));
eel_gconf_set_integer (PREF_UI_PROPERTIES_HEIGHT, gtk_paned_get_position (GTK_PANED (browser->priv->browser_sidebar)));
pos = gtk_paned_get_position (GTK_PANED (browser->priv->browser_container));
if (pos > 0)
eel_gconf_set_integer (PREF_UI_BROWSER_SIDEBAR_WIDTH, pos);
pos = _gtk_paned_get_position2 (GTK_PANED (browser->priv->viewer_pane));
if (pos > 0)
eel_gconf_set_integer (PREF_UI_VIEWER_SIDEBAR_WIDTH, pos);
pos = _gtk_paned_get_position2 (GTK_PANED (browser->priv->browser_sidebar));
if (pos > 0)
eel_gconf_set_integer (PREF_UI_PROPERTIES_HEIGHT, pos);
/**/
......@@ -2712,7 +2721,6 @@ _gth_browser_construct (GthBrowser *browser)
/* content */
browser->priv->viewer_pane = gtk_hpaned_new ();
gtk_paned_set_position (GTK_PANED (browser->priv->viewer_pane), eel_gconf_get_integer (PREF_UI_VIEWER_SIDEBAR_WIDTH, DEFAULT_UI_WINDOW_WIDTH - DEF_SIDEBAR_WIDTH));
gtk_widget_show (browser->priv->viewer_pane);
gth_window_attach_content (GTH_WINDOW (browser), GTH_BROWSER_PAGE_VIEWER, browser->priv->viewer_pane);
......@@ -2781,7 +2789,6 @@ _gth_browser_construct (GthBrowser *browser)
/* the browser sidebar */
browser->priv->browser_sidebar = gtk_vpaned_new ();
gtk_paned_set_position (GTK_PANED (browser->priv->browser_sidebar), eel_gconf_get_integer (PREF_UI_PROPERTIES_HEIGHT, DEF_PROPERTIES_HEIGHT));
gtk_widget_show (browser->priv->browser_sidebar);
gtk_paned_pack1 (GTK_PANED (browser->priv->browser_container), browser->priv->browser_sidebar, FALSE, TRUE);
......@@ -2939,6 +2946,9 @@ _gth_browser_construct (GthBrowser *browser)
/* init browser data */
_gtk_paned_set_position2 (GTK_PANED (browser->priv->viewer_pane), eel_gconf_get_integer (PREF_UI_VIEWER_SIDEBAR_WIDTH, DEFAULT_UI_WINDOW_WIDTH - DEF_SIDEBAR_WIDTH));
_gtk_paned_set_position2 (GTK_PANED (browser->priv->browser_sidebar), eel_gconf_get_integer (PREF_UI_PROPERTIES_HEIGHT, DEF_PROPERTIES_HEIGHT));
_gth_browser_set_toolbar_visibility (browser, eel_gconf_get_boolean (PREF_UI_TOOLBAR_VISIBLE, TRUE));
_gth_browser_update_toolbar_style (browser);
_gth_browser_update_entry_point_list (browser);
......
......@@ -1009,3 +1009,43 @@ _gtk_tree_path_list_free (GList *list)
g_list_foreach (list, (GFunc) gtk_tree_path_free, NULL);
g_list_free (list);
}
int
_gtk_paned_get_position2 (GtkPaned *paned)
{
GtkRequisition requisition;
int pos;
int size;
if (! GTK_WIDGET_VISIBLE (paned))
return 0;
pos = gtk_paned_get_position (paned);
gtk_window_get_size (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (paned))), &(requisition.width), &(requisition.height));
if (gtk_orientable_get_orientation (GTK_ORIENTABLE (paned)) == GTK_ORIENTATION_HORIZONTAL)
size = requisition.width;
else
size = requisition.height;
return size - pos;
}
void
_gtk_paned_set_position2 (GtkPaned *paned,
int pos)
{
GtkRequisition requisition;
int size;
gtk_window_get_size (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (paned))), &(requisition.width), &(requisition.height));
if (gtk_orientable_get_orientation (GTK_ORIENTABLE (paned)) == GTK_ORIENTATION_HORIZONTAL)
size = requisition.width;
else
size = requisition.height;
if (pos > 0)
gtk_paned_set_position (paned, size - pos);
}
......@@ -29,91 +29,94 @@
G_BEGIN_DECLS
GtkWidget* _gtk_message_dialog_new (GtkWindow *parent,
GtkDialogFlags flags,
const char *stock_id,
const char *message,
const char *secondary_message,
const char *first_button_text,
...);
GtkWidget* _gtk_message_dialog_new (GtkWindow *parent,
GtkDialogFlags flags,
const char *stock_id,
const char *message,
const char *secondary_message,
const char *first_button_text,
...);
GtkWidget*
_gtk_message_dialog_with_checkbutton_new (GtkWindow *parent,
GtkDialogFlags flags,
const char *stock_id,
const char *message,
const char *secondary_message,
const char *gconf_key,
const char *check_button_label,
const char *first_button_text,
...);
gchar* _gtk_request_dialog_run (GtkWindow *parent,
GtkDialogFlags flags,
const char *message,
const char *default_value,
int max_length,
const char *no_button_text,
const char *yes_button_text);
GtkWidget* _gtk_yesno_dialog_new (GtkWindow *parent,
GtkDialogFlags flags,
const char *message,
const char *no_button_text,
const char *yes_button_text);
_gtk_message_dialog_with_checkbutton_new (GtkWindow *parent,
GtkDialogFlags flags,
const char *stock_id,
const char *message,
const char *secondary_message,
const char *gconf_key,
const char *check_button_label,
const char *first_button_text,
...);
gchar* _gtk_request_dialog_run (GtkWindow *parent,
GtkDialogFlags flags,
const char *message,
const char *default_value,
int max_length,
const char *no_button_text,
const char *yes_button_text);
GtkWidget* _gtk_yesno_dialog_new (GtkWindow *parent,
GtkDialogFlags flags,
const char *message,
const char *no_button_text,
const char *yes_button_text);
GtkWidget*
_gtk_yesno_dialog_with_checkbutton_new (GtkWindow *parent,
GtkDialogFlags flags,
const char *message,
const char *no_button_text,
const char *yes_button_text,
const char *check_button_label,
const char *gconf_key);
_gtk_yesno_dialog_with_checkbutton_new (GtkWindow *parent,
GtkDialogFlags flags,
const char *message,
const char *no_button_text,
const char *yes_button_text,
const char *check_button_label,
const char *gconf_key);
void
_gtk_error_dialog_from_gerror_run (GtkWindow *parent,
const char *title,
GError **gerror);
_gtk_error_dialog_from_gerror_run (GtkWindow *parent,
const char *title,
GError **gerror);
void
_gtk_error_dialog_from_gerror_show (GtkWindow *parent,
const char *title,
GError **gerror);
void _gtk_error_dialog_run (GtkWindow *parent,
const gchar *format,
...) G_GNUC_PRINTF (2, 3);
void _gtk_info_dialog_run (GtkWindow *parent,
const gchar *format,
...) G_GNUC_PRINTF (2, 3);
GdkPixbuf * _g_icon_get_pixbuf (GIcon *icon,
int size,
GtkIconTheme *icon_theme);
GdkPixbuf * get_mime_type_pixbuf (const char *mime_type,
int icon_size,
GtkIconTheme *icon_theme);
int _gtk_icon_get_pixel_size (GtkWidget *widget,
GtkIconSize size);
void show_help_dialog (GtkWindow *parent,
const char *section);
_gtk_error_dialog_from_gerror_show (GtkWindow *parent,
const char *title,
GError **gerror);
void _gtk_error_dialog_run (GtkWindow *parent,
const gchar *format,
...) G_GNUC_PRINTF (2, 3);
void _gtk_info_dialog_run (GtkWindow *parent,
const gchar *format,
...) G_GNUC_PRINTF (2, 3);
GdkPixbuf * _g_icon_get_pixbuf (GIcon *icon,
int size,
GtkIconTheme *icon_theme);
GdkPixbuf * get_mime_type_pixbuf (const char *mime_type,
int icon_size,
GtkIconTheme *icon_theme);
int _gtk_icon_get_pixel_size (GtkWidget *widget,
GtkIconSize size);
void show_help_dialog (GtkWindow *parent,
const char *section);
void _gtk_container_remove_children
(GtkContainer *container,
gpointer start_after_this,
gpointer stop_before_this);
int _gtk_container_get_pos (GtkContainer *container,
GtkWidget *child);
guint _gtk_container_get_n_children (GtkContainer *container);
(GtkContainer *container,
gpointer start_after_this,
gpointer stop_before_this);
int _gtk_container_get_pos (GtkContainer *container,
GtkWidget *child);
guint _gtk_container_get_n_children (GtkContainer *container);
GtkBuilder *
_gtk_builder_new_from_file (const char *filename,
const char *extension);
_gtk_builder_new_from_file (const char *filename,
const char *extension);
GtkWidget *
_gtk_builder_get_widget (GtkBuilder *builder,
const char *name);
GtkWidget * _gtk_combo_box_new_with_texts (const char *first_text,
...);
void _gtk_combo_box_append_texts (GtkComboBox *combo_box,
const char *first_text,
...);
GtkWidget * _gtk_image_new_from_xpm_data (char *xpm_data[]);
GtkWidget * _gtk_image_new_from_inline (const guint8 *data);
void _gtk_widget_get_screen_size (GtkWidget *widget,
int *width,
int *height);
void _gtk_tree_path_list_free (GList *list);
_gtk_builder_get_widget (GtkBuilder *builder,
const char *name);
GtkWidget * _gtk_combo_box_new_with_texts (const char *first_text,
...);
void _gtk_combo_box_append_texts (GtkComboBox *combo_box,
const char *first_text,
...);
GtkWidget * _gtk_image_new_from_xpm_data (char *xpm_data[]);
GtkWidget * _gtk_image_new_from_inline (const guint8 *data);
void _gtk_widget_get_screen_size (GtkWidget *widget,
int *width,
int *height);
void _gtk_tree_path_list_free (GList *list);
int _gtk_paned_get_position2 (GtkPaned *paned);
void _gtk_paned_set_position2 (GtkPaned *paned,
int pos);
G_END_DECLS
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment