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,
