diff options
author | Carlos Garcia Campos <carlosgc@gnome.org> | 2009-04-06 17:05:52 (GMT) |
---|---|---|
committer | Carlos Garcia Campos <carlosgc@src.gnome.org> | 2009-04-06 17:05:52 (GMT) |
commit | 8a6f3e4fd0e85ea95564610a27514aa9d6c737b3 (patch) | |
tree | a15bf1fbac6fa678078ee8703d039418223a059a /libview/ev-view.c | |
parent | 98ac8530d373d0bc86d887c89cff86914a713f14 (diff) |
Move ev_view_update_view_size() from libview to ev-window again and make
2009-04-06 Carlos Garcia Campos <carlosgc@gnome.org>
* libview/ev-view.[ch]: (ev_view_set_zoom),
(ev_view_update_view_size):
* shell/ev-window.c: (ev_window_set_view_size),
(ev_window_sizing_mode_changed_cb), (ev_window_init):
Move ev_view_update_view_size() from libview to ev-window again
and make sure the view is not redrawn when calling
ev_view_set_zoom more than once with the same zoom scale.
svn path=/trunk/; revision=3573
Diffstat (limited to 'libview/ev-view.c')
-rw-r--r-- | libview/ev-view.c | 40 |
1 files changed, 3 insertions, 37 deletions
diff --git a/libview/ev-view.c b/libview/ev-view.c index 7626f86..8e7fc4a 100644 --- a/libview/ev-view.c +++ b/libview/ev-view.c @@ -2218,9 +2218,7 @@ ev_view_size_allocate (GtkWidget *widget, if (view->sizing_mode == EV_SIZING_FIT_WIDTH || view->sizing_mode == EV_SIZING_BEST_FIT) { - g_signal_emit (view, signals[SIGNAL_ZOOM_INVALID], 0); - ev_view_size_request (widget, &widget->requisition); } @@ -4441,6 +4439,9 @@ ev_view_set_zoom (EvView *view, view->sizing_mode == EV_SIZING_FREE ? view->min_scale : 0, view->max_scale); + if (scale == view->scale) + return; + if (ABS (view->scale - scale) < EPSILON) return; @@ -5834,38 +5835,3 @@ ev_view_previous_page (EvView *view) } } -/*** Enum description for usage in signal ***/ - -void -ev_view_update_view_size (EvView *view, GtkScrolledWindow * scrolled_window) -{ - int width, height; - GtkRequisition vsb_requisition; - GtkRequisition hsb_requisition; - int scrollbar_spacing; - - /* Calculate the width available for the content */ - width = GTK_WIDGET (scrolled_window)->allocation.width; - height = GTK_WIDGET (scrolled_window)->allocation.height; - - if (gtk_scrolled_window_get_shadow_type (scrolled_window) == GTK_SHADOW_IN - && view) { - width -= 2 * GTK_WIDGET(view)->style->xthickness; - height -= 2 * GTK_WIDGET(view)->style->ythickness; - } - - gtk_widget_size_request (scrolled_window->vscrollbar, &vsb_requisition); - gtk_widget_size_request (scrolled_window->hscrollbar, &hsb_requisition); - gtk_widget_style_get (GTK_WIDGET (scrolled_window), - "scrollbar_spacing", - &scrollbar_spacing, - NULL); - - if (EV_IS_VIEW(view)) { - ev_view_set_zoom_for_size (EV_VIEW (view), - MAX (1, width), - MAX (1, height), - vsb_requisition.width + scrollbar_spacing, - hsb_requisition.height + scrollbar_spacing); - } -} |