Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/ev-window.c
diff options
context:
space:
mode:
Diffstat (limited to 'shell/ev-window.c')
-rw-r--r--shell/ev-window.c66
1 files changed, 10 insertions, 56 deletions
diff --git a/shell/ev-window.c b/shell/ev-window.c
index f412a26..65b8812 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -458,11 +458,12 @@ update_sizing_buttons (EvWindow *window)
}
void
-ev_window_open_page (EvWindow *ev_window, int page)
+ev_window_open_page_label (EvWindow *ev_window,
+ const char *label)
{
if (ev_window->priv->page_cache) {
- page = CLAMP (page, 0, ev_page_cache_get_n_pages (ev_window->priv->page_cache));
- ev_page_cache_set_current_page (ev_window->priv->page_cache, page);
+ ev_page_cache_set_page_label (ev_window->priv->page_cache,
+ label);
}
}
@@ -1785,7 +1786,11 @@ ev_window_cmd_view_reload (GtkAction *action, EvWindow *ev_window)
uri = g_strdup (ev_window->priv->uri);
ev_window_open (ev_window, uri);
- ev_window_open_page (ev_window, page);
+
+ /* In case the number of pages in the document has changed. */
+ page = CLAMP (page, 0, ev_page_cache_get_n_pages (ev_window->priv->page_cache));
+
+ ev_page_cache_set_current_page (ev_window->priv->page_cache, page);
g_free (uri);
}
@@ -1838,46 +1843,6 @@ ev_window_cmd_escape (GtkAction *action, EvWindow *window)
}
}
-static void
-update_view_size (EvWindow *window)
-{
- int width, height;
- GtkRequisition vsb_requisition;
- GtkRequisition hsb_requisition;
- int scrollbar_spacing;
-
- /* Calculate the width available for the */
- width = window->priv->scrolled_window->allocation.width;
- height = window->priv->scrolled_window->allocation.height;
-
- if (gtk_scrolled_window_get_shadow_type (GTK_SCROLLED_WINDOW (window->priv->scrolled_window)) == GTK_SHADOW_IN) {
- width -= 2 * window->priv->view->style->xthickness;
- height -= 2 * window->priv->view->style->ythickness;
- }
-
- gtk_widget_size_request (GTK_SCROLLED_WINDOW (window->priv->scrolled_window)->vscrollbar,
- &vsb_requisition);
- gtk_widget_size_request (GTK_SCROLLED_WINDOW (window->priv->scrolled_window)->hscrollbar,
- &hsb_requisition);
- gtk_widget_style_get (window->priv->scrolled_window,
- "scrollbar_spacing", &scrollbar_spacing,
- NULL);
-
- ev_view_set_zoom_for_size (EV_VIEW (window->priv->view),
- MAX (1, width),
- MAX (1, height),
- vsb_requisition.width + scrollbar_spacing,
- hsb_requisition.height + scrollbar_spacing);
-}
-
-static void
-size_allocate_cb (GtkWidget *scrolled_window,
- GtkAllocation *allocation,
- EvWindow *window)
-{
- update_view_size (window);
-}
-
static void
ev_window_sizing_mode_changed_cb (EvView *view, GParamSpec *pspec,
EvWindow *ev_window)
@@ -1891,29 +1856,18 @@ ev_window_sizing_mode_changed_cb (EvView *view, GParamSpec *pspec,
scrolled_window = ev_window->priv->scrolled_window;
- g_signal_handlers_disconnect_by_func (scrolled_window, size_allocate_cb, ev_window);
-
- if (sizing_mode != EV_SIZING_FREE)
- update_view_size (ev_window);
-
switch (sizing_mode) {
case EV_SIZING_BEST_FIT:
g_object_set (G_OBJECT (scrolled_window),
"hscrollbar-policy", GTK_POLICY_NEVER,
"vscrollbar-policy", GTK_POLICY_AUTOMATIC,
NULL);
- g_signal_connect (scrolled_window, "size-allocate",
- G_CALLBACK (size_allocate_cb),
- ev_window);
break;
case EV_SIZING_FIT_WIDTH:
g_object_set (G_OBJECT (scrolled_window),
"hscrollbar-policy", GTK_POLICY_NEVER,
"vscrollbar-policy", GTK_POLICY_AUTOMATIC,
NULL);
- g_signal_connect (scrolled_window, "size-allocate",
- G_CALLBACK (size_allocate_cb),
- ev_window);
break;
case EV_SIZING_FREE:
g_object_set (G_OBJECT (scrolled_window),
@@ -2730,7 +2684,7 @@ ev_window_init (EvWindow *ev_window)
if (!gtk_ui_manager_add_ui_from_file (ev_window->priv->ui_manager,
DATADIR"/evince-ui.xml",
&error)) {
- g_message ("building menus failed: %s", error->message);
+ g_warning ("building menus failed: %s", error->message);
g_error_free (error);
}