Hello community,

here is the log from the commit of package atril for openSUSE:Factory checked 
in at 2018-03-20 21:58:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/atril (Old)
 and      /work/SRC/openSUSE:Factory/.atril.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "atril"

Tue Mar 20 21:58:05 2018 rev:22 rq:586616 version:1.20.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/atril/atril.changes      2017-11-24 
10:53:50.621658842 +0100
+++ /work/SRC/openSUSE:Factory/.atril.new/atril.changes 2018-03-20 
21:58:31.145659002 +0100
@@ -1,0 +2,279 @@
+Fri Mar  9 19:10:07 UTC 2018 - [email protected]
+
+- Update to version 1.20.0:
+  * build: Remove a pre-GTK+3 option.
+  * epub: Make minizip support more BSD variants.
+  * previewer: Add a style class atril-previewer-window.
+  * An implementation of WidthOfScreen and HeightOfScreen.
+  * shell: Show caret navigation in the menu.
+  * ev-link-accessible: Improve efficiency of methods to get start
+    and end indices.
+  * Expose form fields, images and links as AtkObject children of
+    the page.
+  * ev-view-accessible: Add a method to determine if a given doc
+    rect is showing.
+  * ev-page-cache: Add a method to check if a given page has been
+    cached.
+  * libview: Update the caret cursor when jumping to a find result.
+  * libview: Update ATK_STATE_SHOWING when the visible page range
+    changes.
+  * libview: Implement AtkComponent for pages.
+  * libview: Fix shift+click text selection.
+  * a11y: Ensure text cached when one request an EvPageAccessible.
+  * a11y: Managing atk states on EvPageAccessible.
+  * a11y: Add, if applies, ATK_RELATION_FLOWS_TO/FROM on
+    EvPageAccessible.
+  * a11y: Move the AtkHyperText implementation from
+    EvViewAccessible to EvPageAccessible.
+  * a11y: Move the AtkText implementation from EvViewAccessible to
+     EvPageAccessible.
+  * a11y: Expose EvPageAccessible as children of EvViewAccessible.
+  * a11y: New EvPageAccessible.
+  * libview: Fix some broken aspects of the EvViewAccessible text
+    support.
+  * libview: Take caret navigation into account when getting
+    AtkHyperlink indices.
+  * a11y: Clean implementation of atk_text_get_caret_offset().
+  * a11y: Fix implementation of atk_text_set_caret_offset().
+  * view: set_caret_cursor_position() should emit "cursor-moved" if
+    applies.
+  * Remove support for deprecated
+    atk_text_get_text_{before,after}_offset().
+  * a11y: Implement AtkDocument on EvViewAccessible.
+  * a11y: With caret navigation enabled, accessibility current page
+    is cursor page.
+  * ev-view-accessible: Call document_changed_cb when setting the
+    model.
+  * Some text fixes for caret message area.
+  * ev-view-accessible: Fix a crash in ev_view_accessible_get_link.
+  * ev-view-accessible: Clear the cached data when the current page.
+  * shell: remove view_actions_focus_out_cb.
+  * shell: Remove ev_window_set_view_accels_sensitivity.
+  * shell: forward accels to the focused widget.
+  * Use a global array for view accel action.
+  * fix crash when selecting text in djvu documents.
+  * shell: fix stock item for message area.
+  * docs: libview: Re-add type builtins section.
+  * Fix crashes of epub documents with caret-navigation.
+  * Store the caret cursor position in document metadata.
+  * libview: Add ev_view_set_caret_cursor_position.
+  * libview: Update the current page also when pending scroll is to
+    find a location.
+  * libview: Do not schedule a redraw when enabling/disabling caret
+    navigation.
+  * libview: Stop caret cursor blinking when cursor is not in a
+    visible page.
+  * shell: Enable/disable the caret navigation with F7.
+  * libview: Add ev_view_supports_caret_navigation().
+  * ev-link-accesible: Return the index/offset after the last
+    character in the link.
+  * help: Remove references to removed selection mode.
+  * libview: Fix selections starting/ending in page margins.
+  * libview: Reduce the pages to scan for selections.
+  * libview: Remove unused rectangle selection mode.
+  * libview: Rework ev_view_accessible_get_selection.
+  * libview: do not redraw the whole view when caret cursor moves.
+  * libview: Update the cursor area after positioning the cursor
+    when moving between lines.
+  * ev-view-accessible: Fix ev_view_accesssible_get_n_selections.
+  * ev-view-accessibl: Fix get_caret_offset when the caret
+    navigation is enabled.
+  * libview: Use error bell and return early when moving between
+    lines fails.
+  * libview: do not schedule a resize in ensure_rectangle_is_visible.
+  * libview: Stop the cursor blink when there are selections active.
+  * libview: Deprecate ev_view_scroll in favour of
+    g_signal_emit_by_name.
+  * ev-window: Use g_signal_emit_by name instead of ev_view_scroll.
+  * previewer: Remove scroll accelerators.
+  * ev-window: Remove scroll accelerators.
+  * libview: Add more scroll key bindings to EvView.
+  * libview: Fix second parameter type of scroll signal for h, j, k
+    and l bindings.
+  * libview: Use merge_selection_region passing NULL to clear the
+    selections.
+  * ev-pixbuf-cache: Clear the selection region also when clearing
+    the job selection.
+  * ev-pixbuf-cache: Fix the condition for when a new selection is
+    needed.
+  * ev-view-accessible: Rewrite get_run_attributes to return the
+    text attributes from the document.
+  * pdf: Implement ev_document_text_get_text_attrs().
+  * libview: Get text attributes from backend and save them in page
+    cache.
+  * libdocument: Add ev_document_text_get_text_attrs().
+  * libview: Emit the AtkText text-caret-moved and
+    text-selection-changed signals.
+  * libview: clear the selection when cursor is moved.
+  * libview: Do not show the caret cursor when there are active
+    selections.
+  * libview: Return NULL instead of empty regions from the pixbuf
+    cache.
+  * libview: Don’t draw the caret cursor when the view is not
+    focused.
+  * libview: Fix moving caret cursor between lines in multicolumn
+    documents.
+  * libview: Pre-cache some prev/next pages to the current page
+    range.
+  * ev-pixbuf-cache: Schedule prev or next jobs first depending on
+    the scroll direction.
+  * ev-pixbuf-cache: Schedule jobs to render previous pages in
+    inverse order.
+  * libview: Add the 'cursor-moved' signal to notify when the caret
+    cursor has been moved.
+  * libview: Avoid unnecessary region copies when selecting text.
+  * libview: Use a larger damage area to redraw selections.
+  * libview: Don’t queue a redraw when damaged region hasn’t
+    changed.
+  * libview: Invalidate union of old and new selection.
+  * libview: Move the caret cursor when clicking outside a
+    selection.
+  * libview: Remove unused in_selection member from SelectionInfo
+    struct.
+  * libview: Keep the offset inside a line when moving the caret
+    between lines.
+  * libview: Position the caret cursor at beginning/end of the line.
+  * libview: Do not schedule a redraw when selecting all text.
+  * libview: Use prepend + reverse instead of append to create
+    selections list.
+  * libview: Use GSlice to allocate EvViewSelection.
+  * libview: Text selection using the caret cursor.
+  * libview: Update the caret cursor after selecting text with the
+    mouse.
+  * libview: Take page border into account when computing
+    selections.
+  * libview: Fix a crash when selecting more than one page.
+  * libview: Make sure the cursor blinks after moving it by a click.
+  * libview: Merge get_caret_cursor_rect_from_offset and
+    get_caret_cursor_area.
+  * libview: Notify about caret navigation errors using the error
+    bell.
+  * libview: Do not redraw after a click if cursor position hasn’t
+    changed.
+  * libview: Use GtkBindings for caret navigation.
+  * libview: Rename EvView::binding-activated signal as
+    EvView::scroll.
+  * libview: Position the caret cursor by clicking.
+  * libview: Use EvPixbufCache to find selection region.
+  * libview: Split ev_pixbuf_cache_get_selection_surface into two
+    functions.
+  * libview: Draw selection highlight from region.
+  * libview: Fix the damage area used to redraw the caret cursor.
+  * libview: Actually update the page when moving the care from a
+    different page.
+  * libview: Avoid to update the current page and scroll to the
+    cursor position, if the caret cursor was not updated.
+  * libview: Make caret cursor blink.
+  * libview: Use logical attributes instead text layout to move the
+    caret cursor.
+  * libview: Add a way to get the text logical attributes from the
+    page cache.
+  * libview: Initial implementation of caret navigation.
+  * libview: Refactor code for drawing page and selection surfaces.
+  * shell: disable ViewDualOddLeft in menus for epubs.
+  * libview: Only access the relevant page cache for the height
+    request.
+  * Activate shortcut keys for dual and continuous layout.
+  * ev-view: Forward key events to the focused form field.
+  * Add shortcut keys for fit-page and fit-width options.
+  * shell: Do not open single page pdfs in dual mode by default.
+  * libview: Don’t update current_page to negative number.
+  * libview: Make page layout a mode.
+  * libview: Add new zoom mode that optimises for readability.
+  * Rename Fit Page Width as Fit Width.
+  * Rename Best Fit mode as Fit Page.
+  * Move dual page with odd pages left to the view menu.
+  * libview: drop deprecated usage of gtk_container_set_resize_mode.
+  * shell: Check if doc implements Annotations interface before
+    cast.
+  * Refreshing annotations’ sidebar upon deletion.
+  * libdocument: Make ev_mapping_list_remove void.
+  * page-cache: Add flags parameter to ev_page_cache_mark_dirty().
+  * pdf: Reset the annotation mapping when there are no more
+    annotations.
+  * Add an option to remove annotations to the view popup menu.
+  * libview: add ev_view_remove_annotation.
+  * pdf: Implement remove_annotation virtual func.
+  * libdocument: add ev_mapping_list_remove.
++++ 82 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/atril/atril.changes
++++ and /work/SRC/openSUSE:Factory/.atril.new/atril.changes

Old:
----
  atril-1.18.3.tar.xz

New:
----
  atril-1.20.0.tar.xz
  atril-gtk-3.20.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ atril.spec ++++++
--- /var/tmp/diff_new_pack.8bRW9j/_old  2018-03-20 21:58:32.233619829 +0100
+++ /var/tmp/diff_new_pack.8bRW9j/_new  2018-03-20 21:58:32.253619109 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package atril
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,17 +17,19 @@
 
 
 %define sover   3
-%define _version 1.18
+%define _version 1.20
 %define typelib1 typelib-1_0-AtrilDocument-1_5_0
 %define typelib2 typelib-1_0-AtrilView-1_5_0
 Name:           atril
-Version:        1.18.3
+Version:        1.20.0
 Release:        0
 Summary:        MATE Desktop document viewer
-License:        GPL-2.0 AND LGPL-2.0
+License:        GPL-2.0-only AND LGPL-2.0-only
 Group:          System/GUI/Other
 Url:            https://mate-desktop.org/
 Source:         
http://pub.mate-desktop.org/releases/%{_version}/%{name}-%{version}.tar.xz
+# PATCH-FEATURE-OPENSUSE atril-gtk-3.20.patch -- Restore GLib 2.48 and GTK+ 
3.20 support.
+Patch0:         atril-gtk-3.20.patch
 BuildRequires:  fdupes
 BuildRequires:  gcc-c++
 BuildRequires:  libxml2-python
@@ -39,9 +41,9 @@
 BuildRequires:  pkgconfig(ddjvuapi)
 BuildRequires:  pkgconfig(gail-3.0)
 BuildRequires:  pkgconfig(gdk-pixbuf-2.0)
-BuildRequires:  pkgconfig(glib-2.0)
+BuildRequires:  pkgconfig(glib-2.0) >= 2.48
 BuildRequires:  pkgconfig(gobject-introspection-1.0)
-BuildRequires:  pkgconfig(gtk+-3.0) >= 3.14
+BuildRequires:  pkgconfig(gtk+-3.0) >= 3.20
 BuildRequires:  pkgconfig(libcaja-extension) >= %{_version}
 BuildRequires:  pkgconfig(libgxps)
 BuildRequires:  pkgconfig(libpst)
@@ -51,6 +53,7 @@
 BuildRequires:  pkgconfig(libxml-2.0)
 BuildRequires:  pkgconfig(poppler-glib) >= 0.22.0
 BuildRequires:  pkgconfig(sm)
+BuildRequires:  pkgconfig(webkit2gtk-4.0)
 BuildRequires:  pkgconfig(xt)
 BuildRequires:  pkgconfig(zlib)
 Requires:       %{name}-backends = %{version}
@@ -61,9 +64,6 @@
 Obsoletes:      mate-document-viewer < %{version}
 Obsoletes:      mate-document-viewer-lang < %{version}
 %glib2_gsettings_schema_requires
-%if 0%{?suse_version} >= 1320 || (0%{?sle_version} >= 120100 && 
0%{?is_opensuse})
-BuildRequires:  pkgconfig(webkit2gtk-4.0)
-%endif
 
 %description
 Atril is a document viewer capable of displaying multiple and single
@@ -166,6 +166,7 @@
 
 %prep
 %setup -q
+%patch0 -p1
 
 %build
 NOCONFIGURE=1 mate-autogen
@@ -191,7 +192,7 @@
 
 %postun -n libatrildocument%{sover} -p /sbin/ldconfig
 
-%if 0%{?suse_version} <= 1320
+%if 0%{?suse_version} < 1500
 %post
 %icon_theme_cache_post
 %desktop_database_post
@@ -206,7 +207,12 @@
 %endif
 
 %files
-%doc AUTHORS COPYING README
+%if 0%{?suse_version} >= 1500
+%license COPYING
+%else
+%doc COPYING
+%endif
+%doc AUTHORS README
 %{_bindir}/%{name}
 %{_bindir}/%{name}-previewer
 %{_bindir}/%{name}-thumbnailer
@@ -225,11 +231,21 @@
 %{_mandir}/man?/*.?%{?ext_man}
 
 %files -n libatrilview%{sover}
-%doc AUTHORS COPYING README
+%if 0%{?suse_version} >= 1500
+%license COPYING
+%else
+%doc COPYING
+%endif
+%doc AUTHORS README
 %{_libdir}/libatrilview.so.%{sover}*
 
 %files -n libatrildocument%{sover}
-%doc AUTHORS COPYING README
+%if 0%{?suse_version} >= 1500
+%license COPYING
+%else
+%doc COPYING
+%endif
+%doc AUTHORS README
 %{_libdir}/libatrildocument.so.%{sover}*
 
 %files devel
@@ -250,7 +266,12 @@
 %{_libdir}/girepository-1.0/AtrilView-1.5.0.typelib
 
 %files backends
-%doc AUTHORS README COPYING
+%if 0%{?suse_version} >= 1500
+%license COPYING
+%else
+%doc COPYING
+%endif
+%doc AUTHORS README
 %{_libdir}/%{name}/%{sover}/backends/
 
 %files thumbnailer

++++++ atril-1.18.3.tar.xz -> atril-1.20.0.tar.xz ++++++
++++ 146042 lines of diff (skipped)

++++++ atril-gtk-3.20.patch ++++++
--- a/configure.ac
+++ b/configure.ac
@@ -85,8 +85,8 @@ GLIB_GSETTINGS
 
 dnl Specify required versions of dependencies
 CAIRO_REQUIRED=1.10.0
-GLIB_REQUIRED=2.50.0
-GTK_REQUIRED=3.22.0
+GLIB_REQUIRED=2.48.0
+GTK_REQUIRED=3.20.0
 WEBKIT_REQUIRED=2.4.3
 LIBSECRET_REQUIRED=0.5
 LIBXML_REQUIRED=2.5.0
--- a/libdocument/ev-document-misc.c
+++ b/libdocument/ev-document-misc.c
@@ -395,7 +395,11 @@ ev_document_misc_invert_pixbuf (GdkPixbu
 }
 
 gdouble
+#if GTK_CHECK_VERSION (3, 22, 0)
 ev_document_misc_get_screen_dpi (GdkScreen *screen, GdkMonitor *monitor)
+#else
+ev_document_misc_get_screen_dpi (GdkScreen *screen, int monitor)
+#endif
 {
        gdouble dp, di;
 
@@ -403,8 +407,13 @@ ev_document_misc_get_screen_dpi (GdkScre
        dp = hypot (WidthOfScreen (gdk_x11_screen_get_xscreen (screen)), 
HeightOfScreen (gdk_x11_screen_get_xscreen (screen)));
 
        /*diagonal in inches*/
+#if GTK_CHECK_VERSION (3, 22, 0)
        di = hypot (gdk_monitor_get_width_mm(monitor), 
gdk_monitor_get_height_mm (monitor)) / 25.4;
        di /= gdk_monitor_get_scale_factor (monitor);
+#else
+       di = hypot (gdk_screen_get_width_mm (screen), gdk_screen_get_height_mm 
(screen)) / 25.4;
+       di /= gdk_screen_get_monitor_scale_factor (screen, monitor);
+#endif
 
        return (dp / di);
 }
--- a/libdocument/ev-document-misc.h
+++ b/libdocument/ev-document-misc.h
@@ -58,7 +58,11 @@ cairo_surface_t *ev_document_misc_surfac
 void             ev_document_misc_invert_surface (cairo_surface_t *surface);
 void             ev_document_misc_invert_pixbuf  (GdkPixbuf       *pixbuf);
 
+#if GTK_CHECK_VERSION (3, 22, 0)
 gdouble          ev_document_misc_get_screen_dpi (GdkScreen *screen, 
GdkMonitor *monitor);
+#else
+gdouble          ev_document_misc_get_screen_dpi (GdkScreen *screen, int 
monitor);
+#endif
 
 gchar           *ev_document_misc_format_date (GTime utime);
 
--- a/libview/ev-annotation-window.c
+++ b/libview/ev-annotation-window.c
@@ -97,13 +97,20 @@ static gdouble
 get_screen_dpi (EvAnnotationWindow *window)
 {
        GdkScreen  *screen;
+#if GTK_CHECK_VERSION (3, 22, 0)
        GdkMonitor *monitor;
+#else
+       int         monitor;
+#endif
        GdkDisplay *display;
 
        screen = gtk_window_get_screen (GTK_WINDOW (window));
        display = gdk_screen_get_display (screen);
+#if GTK_CHECK_VERSION (3, 22, 0)
        monitor = gdk_display_get_primary_monitor (display);
-
+#else
+       monitor = gdk_screen_get_primary_monitor (screen);
+#endif
        return ev_document_misc_get_screen_dpi (screen, monitor);
 }
 
--- a/libview/ev-view.c
+++ b/libview/ev-view.c
@@ -497,7 +497,11 @@ is_dual_page (EvView   *view,
        switch (view->page_layout) {
        case EV_PAGE_LAYOUT_AUTOMATIC: {
                GdkScreen    *screen;
+#if GTK_CHECK_VERSION (3, 22, 0)
                GdkMonitor *monitor;
+#else
+               int         monitor;
+#endif
                GdkDisplay *display;
                double        scale;
                double        doc_width;
@@ -506,7 +510,11 @@ is_dual_page (EvView   *view,
 
                screen = gtk_widget_get_screen (GTK_WIDGET (view));
                display = gdk_screen_get_display (screen);
+#if GTK_CHECK_VERSION (3, 22, 0)
                monitor = gdk_display_get_primary_monitor (display);
+#else
+               monitor = gdk_screen_get_primary_monitor (screen);
+#endif
                scale = ev_document_misc_get_screen_dpi (screen, monitor) / 
72.0;
 
                ev_document_get_max_page_size (view->document, &doc_width, 
&doc_height);
@@ -7128,7 +7136,11 @@ zoom_for_size_automatic (GdkScreen *scre
                         int        target_width,
                         int        target_height)
 {
+#if GTK_CHECK_VERSION (3, 22, 0)
        GdkMonitor *monitor;
+#else
+       int         monitor;
+#endif
        GdkDisplay *display;
        double fit_width_scale;
        double scale;
@@ -7144,7 +7156,11 @@ zoom_for_size_automatic (GdkScreen *scre
                double actual_scale;
 
                display = gdk_screen_get_display (screen);
+#if GTK_CHECK_VERSION (3, 22, 0)
                monitor = gdk_display_get_primary_monitor (display);
+#else
+               monitor = gdk_screen_get_primary_monitor (screen);
+#endif
                actual_scale = ev_document_misc_get_screen_dpi (screen, 
monitor) / 72.0;
                scale = MIN (fit_width_scale, actual_scale);
        }
--- a/libview/ev-view-presentation.c
+++ b/libview/ev-view-presentation.c
@@ -1211,12 +1211,22 @@ init_presentation (GtkWidget *widget)
 {
        EvViewPresentation *pview = EV_VIEW_PRESENTATION (widget);
        GdkDisplay         *display = gtk_widget_get_display (widget);
+#if GTK_CHECK_VERSION (3, 22, 0)
        GdkRectangle        monitor;
        GdkMonitor         *monitor_num;
+#else
+       GdkScreen          *screen = gdk_display_get_default_screen (display);
+       GdkRectangle        monitor;
+       int                 monitor_num;
+#endif
 
+#if GTK_CHECK_VERSION (3, 22, 0)
        monitor_num = gdk_display_get_monitor_at_window (display, 
gtk_widget_get_window (widget));
        gdk_monitor_get_geometry (monitor_num, &monitor);
-
+#else
+       monitor_num = gdk_screen_get_monitor_at_window (screen, 
gtk_widget_get_window (widget));
+       gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor);
+#endif
        pview->monitor_width = monitor.width;
        pview->monitor_height = monitor.height;
 
--- a/previewer/ev-previewer-window.c
+++ b/previewer/ev-previewer-window.c
@@ -71,12 +71,20 @@ static gdouble
 get_screen_dpi (EvPreviewerWindow *window)
 {
        GdkScreen  *screen;
+#if GTK_CHECK_VERSION (3, 22, 0)
        GdkMonitor *monitor;
+#else
+       int         monitor;
+#endif
        GdkDisplay *display;
 
        screen = gtk_window_get_screen (GTK_WINDOW (window));
        display = gdk_screen_get_display (screen);
+#if GTK_CHECK_VERSION (3, 22, 0)
        monitor = gdk_display_get_primary_monitor (display);
+#else
+       monitor = gdk_screen_get_primary_monitor (screen);
+#endif
 
        return ev_document_misc_get_screen_dpi (screen, monitor);
 }
--- a/shell/ev-navigation-action-widget.c
+++ b/shell/ev-navigation-action-widget.c
@@ -131,18 +131,32 @@ menu_position_func (GtkMenu           *m
        GtkTextDirection direction;
        GdkWindow *gdk_window;
        GdkRectangle monitor;
+#if GTK_CHECK_VERSION (3, 22, 0)
        GdkMonitor *monitor_num;
+#else
+       int monitor_num;
+       GdkScreen *screen;
+#endif
        GdkDisplay *display;
 
        gtk_widget_get_preferred_size (GTK_WIDGET (button->menu), &menu_req, 
NULL);
        direction = gtk_widget_get_direction (widget);
        display = gtk_widget_get_display (GTK_WIDGET (menu));
+#if !GTK_CHECK_VERSION (3, 22, 0)
+       screen = gdk_display_get_default_screen (display);
+#endif
 
        gdk_window = gtk_widget_get_window (widget);
+#if GTK_CHECK_VERSION (3, 22, 0)
        monitor_num = gdk_display_get_monitor_at_window (display, gdk_window);
        if (monitor_num == NULL)
                monitor_num = gdk_display_get_monitor (display, 0);
        gdk_monitor_get_geometry (monitor_num, &monitor);
+#else
+       monitor_num = gdk_screen_get_monitor_at_window (screen, gdk_window);
+       monitor_num = monitor_num > 0 ? monitor_num : 0;
+       gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor);
+#endif
 
        gdk_window_get_origin (gdk_window, x, y);
        gtk_widget_get_allocation (widget, &allocation);
--- a/shell/ev-utils.c
+++ b/shell/ev-utils.c
@@ -26,6 +26,7 @@
 #include <string.h>
 #include <glib/gi18n.h>
 
+#if GTK_CHECK_VERSION(3, 22, 0)
 static int
 _gtk_get_monitor_num (GdkMonitor *monitor)
 {
@@ -42,6 +43,7 @@ _gtk_get_monitor_num (GdkMonitor *monito
 
        return -1;
 }
+#endif
 
 static void
 ev_gui_sanitise_popup_position (GtkMenu *menu,
@@ -50,7 +52,12 @@ ev_gui_sanitise_popup_position (GtkMenu
                                gint *y)
 {
        GdkDisplay *display = gtk_widget_get_display (widget);
+#if GTK_CHECK_VERSION (3, 22, 0)
        GdkMonitor *monitor_num;
+#else
+       GdkScreen  *screen = gdk_display_get_default_screen (display);
+       int         monitor_num;
+#endif
        GdkRectangle monitor;
        GtkRequisition req;
 
@@ -58,9 +65,15 @@ ev_gui_sanitise_popup_position (GtkMenu
 
        gtk_widget_get_preferred_size (GTK_WIDGET (menu), &req, NULL);
 
+#if GTK_CHECK_VERSION (3, 22, 0)
        monitor_num = gdk_display_get_monitor_at_point (display, *x, *y);
        gtk_menu_set_monitor (menu, _gtk_get_monitor_num (monitor_num));
        gdk_monitor_get_geometry (monitor_num, &monitor);
+#else
+       monitor_num = gdk_screen_get_monitor_at_point (screen, *x, *y);
+       gtk_menu_set_monitor (menu, monitor_num);
+       gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor);
+#endif
 
        *x = CLAMP (*x, monitor.x, monitor.x + MAX (0, monitor.width - 
req.width));
        *y = CLAMP (*y, monitor.y, monitor.y + MAX (0, monitor.height - 
req.height));
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -390,12 +390,20 @@ static gdouble
 get_screen_dpi (EvWindow *window)
 {
        GdkScreen  *screen;
+#if GTK_CHECK_VERSION (3, 22, 0)
        GdkMonitor *monitor;
+#else
+       int         monitor;
+#endif
        GdkDisplay *display;
 
        screen = gtk_window_get_screen (GTK_WINDOW (window));
        display = gdk_screen_get_display (screen);
+#if GTK_CHECK_VERSION (3, 22, 0)
        monitor = gdk_display_get_primary_monitor (display);
+#else
+       monitor = gdk_screen_get_primary_monitor (screen);
+#endif
 
        return ev_document_misc_get_screen_dpi (screen, monitor);
 }
@@ -4917,10 +4925,17 @@ ev_window_cmd_help_contents (GtkAction *
 {
        GError  *error = NULL;
 
+#if GTK_CHECK_VERSION (3, 22, 0)
        gtk_show_uri_on_window (GTK_WINDOW (ev_window),
                      EV_HELP,
                      gtk_get_current_event_time (),
                      &error);
+#else
+       gtk_show_uri (gtk_window_get_screen (GTK_WINDOW (ev_window)),
+                     EV_HELP,
+                     gtk_get_current_event_time (),
+                     &error);
+#endif
 
        if (error) {
                ev_window_error_message (ev_window, error, 

Reply via email to