Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorCarlos Garcia Campos <carlosgc@gnome.org>2005-02-25 08:38:12 (GMT)
committer Marco Pesenti Gritti <marco@src.gnome.org>2005-02-25 08:38:12 (GMT)
commit05c1e8cb1002f66cde85ae692f8cd56c82cc59e7 (patch)
treed1c9c3be70a89e013da90d5806af16e4f3454570 /shell
parentc4daf0b876a3e5bcf46d903cc376d99e19bfd77a (diff)
Marco Pesenti Gritti <marco@gnome.org>
2005-02-25 Carlos Garcia Campos <carlosgc@gnome.org> Marco Pesenti Gritti <marco@gnome.org> * shell/ev-window.c: Remember the sidebar size * data/evince.schemas.in: Add a new gconf key to store the size of the sidebar
Diffstat (limited to 'shell')
-rw-r--r--shell/ev-sidebar.c1
-rw-r--r--shell/ev-window.c54
2 files changed, 48 insertions, 7 deletions
diff --git a/shell/ev-sidebar.c b/shell/ev-sidebar.c
index c5a6574..e79ad60 100644
--- a/shell/ev-sidebar.c
+++ b/shell/ev-sidebar.c
@@ -233,7 +233,6 @@ ev_sidebar_init (EvSidebar *ev_sidebar)
GtkWidget *image;
ev_sidebar->priv = EV_SIDEBAR_GET_PRIVATE (ev_sidebar);
- gtk_box_set_spacing (GTK_BOX (ev_sidebar), 6);
/* data model */
ev_sidebar->priv->page_model = (GtkTreeModel *)
diff --git a/shell/ev-window.c b/shell/ev-window.c
index 95ceb84..4a94e34 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -133,6 +133,9 @@ static GtkTargetEntry ev_drop_types[] = {
#define GCONF_CHROME_SIDEBAR "/apps/evince/show_sidebar"
#define GCONF_CHROME_STATUSBAR "/apps/evince/show_statusbar"
+#define GCONF_SIDEBAR_SIZE "/apps/evince/sidebar_size"
+#define SIDEBAR_DEFAULT_SIZE 132
+
static void ev_window_update_fullscreen_popup (EvWindow *window);
static void ev_window_sidebar_visibility_changed_cb (EvSidebar *ev_sidebar, GParamSpec *pspec,
EvWindow *ev_window);
@@ -229,6 +232,8 @@ update_action_sensitivity (EvWindow *ev_window)
static void
set_widget_visibility (GtkWidget *widget, gboolean visible)
{
+ g_return_if_fail (GTK_IS_WIDGET (widget));
+
if (visible)
gtk_widget_show (widget);
else
@@ -1092,6 +1097,20 @@ screen_size_changed_cb (GdkScreen *screen,
}
static void
+ev_window_sidebar_position_change_cb (GObject *object, GParamSpec *pspec,
+ EvWindow *ev_window)
+{
+ GConfClient *client;
+ int sidebar_size;
+
+ sidebar_size = gtk_paned_get_position (GTK_PANED (object));
+
+ client = gconf_client_get_default ();
+ gconf_client_set_int (client, GCONF_SIDEBAR_SIZE, sidebar_size, NULL);
+ g_object_unref (client);
+}
+
+static void
destroy_fullscreen_popup (EvWindow *window)
{
if (window->priv->fullscreen_popup != NULL)
@@ -2181,6 +2200,9 @@ ev_window_init (EvWindow *ev_window)
GtkAccelGroup *accel_group;
GError *error = NULL;
GtkWidget *sidebar_widget, *toolbar_dock;
+ GConfValue *value;
+ GConfClient *client;
+ int sidebar_size;
ev_window->priv = EV_WINDOW_GET_PRIVATE (ev_window);
@@ -2257,16 +2279,30 @@ ev_window_init (EvWindow *ev_window)
/* Add the main area */
ev_window->priv->hpaned = gtk_hpaned_new ();
+ g_signal_connect (ev_window->priv->hpaned,
+ "notify::position",
+ G_CALLBACK (ev_window_sidebar_position_change_cb),
+ ev_window);
+
+ sidebar_size = SIDEBAR_DEFAULT_SIZE;
+ client = gconf_client_get_default ();
+ value = gconf_client_get (client, GCONF_SIDEBAR_SIZE, NULL);
+ if (value != NULL) {
+ if (value->type == GCONF_VALUE_INT) {
+ sidebar_size = gconf_value_get_int (value);
+ }
+ gconf_value_free (value);
+ }
+ g_object_unref (client);
+ gtk_paned_set_position (GTK_PANED (ev_window->priv->hpaned), sidebar_size);
gtk_box_pack_start (GTK_BOX (ev_window->priv->main_box), ev_window->priv->hpaned,
- TRUE, TRUE, 0);
+ TRUE, TRUE, 0);
+ gtk_widget_show (ev_window->priv->hpaned);
+
ev_window->priv->sidebar = ev_sidebar_new ();
- g_signal_connect (ev_window->priv->sidebar,
- "notify::visible",
- G_CALLBACK (ev_window_sidebar_visibility_changed_cb),
- ev_window);
gtk_paned_pack1 (GTK_PANED (ev_window->priv->hpaned),
ev_window->priv->sidebar, FALSE, FALSE);
- gtk_widget_show (ev_window->priv->hpaned);
+ gtk_widget_show (ev_window->priv->sidebar);
/* Stub sidebar, for now */
sidebar_widget = ev_sidebar_links_new ();
@@ -2341,6 +2377,12 @@ ev_window_init (EvWindow *ev_window)
set_chrome_actions (ev_window);
update_chrome_visibility (ev_window);
+ /* Connect sidebar signals */
+ g_signal_connect (ev_window->priv->sidebar,
+ "notify::visible",
+ G_CALLBACK (ev_window_sidebar_visibility_changed_cb),
+ ev_window);
+
/* Connect to find bar signals */
g_signal_connect (ev_window->priv->find_bar,
"previous",