File mate-settings-daemon-gtk-3.20.patch of Package mate-settings-daemon
--- a/configure.ac
+++ b/configure.ac
@@ -51,9 +51,9 @@ dnl - Dependencies
dnl ---------------------------------------------------------------------------
DBUS_GLIB_REQUIRED_VERSION=0.74
-GLIB_REQUIRED_VERSION=2.50.0
-GIO_REQUIRED_VERSION=2.50.0
-GTK_REQUIRED_VERSION=3.22.0
+GLIB_REQUIRED_VERSION=2.48.0
+GIO_REQUIRED_VERSION=2.48.0
+GTK_REQUIRED_VERSION=3.20.0
MATE_DESKTOP_REQUIRED_VERSION=1.20.0
LIBMATEKBD_REQUIRED_VERSION=1.17.0
LIBNOTIFY_REQUIRED_VERSION=0.7.0
--- a/plugins/a11y-keyboard/msd-a11y-keyboard-manager.c
+++ b/plugins/a11y-keyboard/msd-a11y-keyboard-manager.c
@@ -424,7 +424,11 @@ ax_response_callback (MsdA11yKeyboardMan
case GTK_RESPONSE_HELP:
err = NULL;
+#if GTK_CHECK_VERSION (3, 22, 0)
if (!gtk_show_uri_on_window (parent,
+#else
+ if (!gtk_show_uri (gtk_window_get_screen (parent),
+#endif
"help:mate-user-guide/goscustaccess-6",
gtk_get_current_event_time(),
&err)) {
--- a/plugins/media-keys/msd-media-keys-manager.c
+++ b/plugins/media-keys/msd-media-keys-manager.c
@@ -401,7 +401,11 @@ dialog_show (MsdMediaKeysManager *manage
GtkRequisition win_req;
GdkScreen *pointer_screen;
GdkRectangle geometry;
+#if GTK_CHECK_VERSION (3, 22, 0)
GdkMonitor *monitor;
+#else
+ int monitor;
+#endif
gtk_window_set_screen (GTK_WINDOW (manager->priv->dialog),
manager->priv->current_screen);
@@ -439,12 +443,28 @@ dialog_show (MsdMediaKeysManager *manage
/* The pointer isn't on the current screen, so just
* assume the default monitor
*/
+#if GTK_CHECK_VERSION (3, 22, 0)
monitor = gdk_display_get_monitor (display, 0);
+#else
+ monitor = 0;
+#endif
} else {
+#if GTK_CHECK_VERSION (3, 22, 0)
monitor = gdk_display_get_monitor_at_point (display, pointer_x, pointer_y);
+#else
+ monitor = gdk_screen_get_monitor_at_point (gdk_display_get_default_screen (display),
+ pointer_x,
+ pointer_y);
+#endif
}
+#if GTK_CHECK_VERSION (3, 22, 0)
gdk_monitor_get_geometry (monitor, &geometry);
+#else
+ gdk_screen_get_monitor_geometry (gdk_display_get_default_screen (display),
+ monitor,
+ &geometry);
+#endif
screen_w = geometry.width;
screen_h = geometry.height;
--- a/plugins/xsettings/msd-xsettings-manager.c
+++ b/plugins/xsettings/msd-xsettings-manager.c
@@ -231,21 +231,38 @@ static int
get_window_scale_auto ()
{
GdkDisplay *display;
+#if GTK_CHECK_VERSION (3, 22, 0)
GdkMonitor *monitor;
+#else
+ GdkScreen *screen;
+ int monitor;
+#endif
GdkRectangle rect;
int width_mm, height_mm;
int monitor_scale, window_scale;
display = gdk_display_get_default ();
+#if GTK_CHECK_VERSION (3, 22, 0)
monitor = gdk_display_get_primary_monitor (display);
+#else
+ screen = gdk_display_get_default_screen (display);
+ monitor = gdk_screen_get_primary_monitor (screen);
+#endif
/* Use current value as the default */
window_scale = 1;
+#if GTK_CHECK_VERSION (3, 22, 0)
gdk_monitor_get_geometry (monitor, &rect);
width_mm = gdk_monitor_get_width_mm (monitor);
height_mm = gdk_monitor_get_height_mm (monitor);
monitor_scale = gdk_monitor_get_scale_factor (monitor);
+#else
+ gdk_screen_get_monitor_geometry (screen, monitor, &rect);
+ width_mm = gdk_screen_get_monitor_width_mm (screen, monitor);
+ height_mm = gdk_screen_get_monitor_height_mm (screen, monitor);
+ monitor_scale = gdk_screen_get_monitor_scale_factor (screen, monitor);
+#endif
if (rect.height * monitor_scale < HIDPI_MIN_HEIGHT)
return 1;