]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-view.c
Fix for 170111
[evince.git] / shell / ev-view.c
index cca39477c4fdb6fdce5460d7ba5bd5cad6c0ce4f..548fe863d526ceda76672c04384443b0a39a729b 100644 (file)
@@ -77,7 +77,7 @@ typedef enum {
 #define ZOOM_OUT_FACTOR (1.0/ZOOM_IN_FACTOR)
 
 #define MIN_SCALE 0.05409
-#define MAX_SCALE 18.4884
+#define MAX_SCALE 6.0
 
 struct _EvView {
        GtkWidget parent_instance;
@@ -537,21 +537,17 @@ highlight_find_results (EvView *view)
        g_return_if_fail (EV_IS_DOCUMENT_FIND (view->document));
 
        find = EV_DOCUMENT_FIND (view->document);
-#if 0
-       ev_document_doc_mutex_lock ();
+
        results = ev_document_find_get_n_results (find, view->current_page);
-       ev_document_doc_mutex_unlock ();
-#endif
+
        for (i = 0; i < results; i++) {
                EvRectangle rectangle;
                GdkRectangle view_rectangle;
                guchar alpha;
 
                alpha = (i == view->find_result) ? 0x90 : 0x20;
-               ev_document_doc_mutex_lock ();
                ev_document_find_get_result (find, view->current_page,
                                             i, &rectangle);
-               ev_document_doc_mutex_unlock ();
                doc_rect_to_view_rect (view, &rectangle, &view_rectangle);
                draw_rubberband (GTK_WIDGET (view), view->bin_window,
                                 &view_rectangle, alpha);
@@ -1597,6 +1593,26 @@ ev_view_zoom (EvView   *view,
        gtk_widget_queue_resize (GTK_WIDGET (view));
 }
 
+gboolean
+ev_view_can_zoom_in (EvView *view)
+{
+       if (view->width != -1 || view->height != -1) {
+               return TRUE;
+       }
+
+       return view->scale * ZOOM_IN_FACTOR <= MAX_SCALE;
+}
+
+gboolean
+ev_view_can_zoom_out (EvView *view)
+{
+       if (view->width != -1 || view->height != -1) {
+               return TRUE;
+       }
+
+       return view->scale * ZOOM_OUT_FACTOR >= MIN_SCALE;
+}
+
 void
 ev_view_zoom_in (EvView *view)
 {
@@ -1609,6 +1625,12 @@ ev_view_zoom_out (EvView *view)
        ev_view_zoom (view, ZOOM_OUT_FACTOR, TRUE);
 }
 
+void
+ev_view_zoom_normal (EvView *view)
+{
+       ev_view_zoom (view, 1.0, FALSE);
+}
+
 void
 ev_view_set_size (EvView     *view,
                  int         width,