Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--data/evince.schemas.in11
-rw-r--r--shell/ev-sidebar.c1
-rw-r--r--shell/ev-window.c54
4 files changed, 67 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 537290e..20a5a3f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+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
+
2005-02-24 Kai Willadsen <kaiw@itee.uq.edu.au>
* data/evince-ui.xml:
diff --git a/data/evince.schemas.in b/data/evince.schemas.in
index d16bd95..c74653a 100644
--- a/data/evince.schemas.in
+++ b/data/evince.schemas.in
@@ -33,5 +33,16 @@
<long>Show statusbar by default.</long>
</locale>
</schema>
+ <schema>
+ <key>/schemas/apps/evince/sidebar_size</key>
+ <applyto>/apps/evince/sidebar_size</applyto>
+ <owner>evince</owner>
+ <type>int</type>
+ <default>132</default>
+ <locale name="C">
+ <short>Sidebar size by default</short>
+ <long>Sidebar size by default.</long>
+ </locale>
+ </schema>
</schemalist>
</gconfschemafile>
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",