Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/libview/ev-view.c
diff options
context:
space:
mode:
authorCarlos 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)
commit8a6f3e4fd0e85ea95564610a27514aa9d6c737b3 (patch)
treea15bf1fbac6fa678078ee8703d039418223a059a /libview/ev-view.c
parent98ac8530d373d0bc86d887c89cff86914a713f14 (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.c40
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);
- }
-}