diff options
Diffstat (limited to 'shell/ev-window.c')
-rw-r--r-- | shell/ev-window.c | 66 |
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); } |