File mate-desktop-gtk-3.20.patch of Package mate-desktop

--- a/configure.ac
+++ b/configure.ac
@@ -96,9 +96,9 @@ else
         EXTERNAL_PNP_IDS="$with_pnp_ids_path"
 fi
 
-GLIB_REQUIRED=2.50.0
+GLIB_REQUIRED=2.48.0
 GIO_REQUIRED=2.26.0
-GTK_REQUIRED=3.22.0
+GTK_REQUIRED=3.20.0
 XRANDR_REQUIRED=1.3
 
 dnl ----------------------------------------------------------------------------
--- a/libmate-desktop/mate-bg.c
+++ b/libmate-desktop/mate-bg.c
@@ -857,9 +857,15 @@ draw_color_each_monitor (MateBG    *bg,
 	int monitor;
 
 	display = gdk_screen_get_display (screen);
+#if GTK_CHECK_VERSION (3, 22, 0)
 	num_monitors = gdk_display_get_n_monitors (display);
 	for (monitor = 0; monitor < num_monitors; monitor++) {
 		gdk_monitor_get_geometry (gdk_display_get_monitor (display, monitor), &rect);
+#else
+	num_monitors = gdk_screen_get_n_monitors (screen);
+	for (monitor = 0; monitor < num_monitors; monitor++) {
+		gdk_screen_get_monitor_geometry (screen, monitor, &rect);
+#endif
 		draw_color_area (bg, dest, &rect);
 	}
 }
@@ -1033,14 +1039,22 @@ draw_each_monitor (MateBG    *bg,
 	GdkDisplay *display;
 
 	display = gdk_screen_get_display (screen);
+#if GTK_CHECK_VERSION (3, 22, 0)
 	gint num_monitors = gdk_display_get_n_monitors (display);
+#else
+	gint num_monitors = gdk_screen_get_n_monitors (screen);
+#endif
 	gint monitor = 0;
 
 	for (; monitor < num_monitors; monitor++) {
 		GdkRectangle rect;
 		GdkPixbuf *pixbuf;
 
+#if GTK_CHECK_VERSION (3, 22, 0)
 		gdk_monitor_get_geometry (gdk_display_get_monitor (display, monitor), &rect);
+#else
+		gdk_screen_get_monitor_geometry (screen, monitor, &rect);
+#endif
 
 		pixbuf = get_pixbuf_for_size (bg, monitor, rect.width, rect.height);
 		if (pixbuf) {
--- a/libmate-desktop/mate-bg-crossfade.c
+++ b/libmate-desktop/mate-bg-crossfade.c
@@ -406,6 +406,7 @@ draw_background (MateBGCrossfade *fade)
 	if (fade->priv->widget != NULL) {
 		gtk_widget_queue_draw (fade->priv->widget);
 	} else if (gdk_window_get_window_type (fade->priv->window) != GDK_WINDOW_ROOT) {
+#if GTK_CHECK_VERSION (3, 22, 0)
 		cairo_t           *cr;
 		cairo_region_t    *region;
 		GdkDrawingContext *draw_context;
@@ -419,6 +420,16 @@ draw_background (MateBGCrossfade *fade)
 		cairo_paint (cr);
 		gdk_window_end_draw_frame (fade->priv->window, draw_context);
 		cairo_region_destroy (region);
+#else
+		cairo_pattern_t *pattern;
+
+		pattern =
+		  cairo_pattern_create_for_surface (fade->priv->fading_surface);
+		gdk_window_set_background_pattern (fade->priv->window, pattern);
+		cairo_pattern_destroy (pattern);
+		gdk_window_invalidate_rect (fade->priv->window, NULL, FALSE);
+		gdk_window_process_updates (fade->priv->window, FALSE);
+#endif
 	} else {
 		Display *xdisplay = GDK_WINDOW_XDISPLAY (fade->priv->window);
 		GdkDisplay *display;
--- a/libmate-desktop/mate-desktop-item.c
+++ b/libmate-desktop/mate-desktop-item.c
@@ -2086,10 +2086,17 @@ mate_desktop_item_launch_on_screen_with_
 			return -1;
 		}
 
+#if GTK_CHECK_VERSION (3, 22, 0)
 		retval = gtk_show_uri_on_window  (NULL,
 		                                  url,
 		                                  GDK_CURRENT_TIME,
 		                                  error);
+#else
+		retval = gtk_show_uri (screen,
+		                       url,
+		                       GDK_CURRENT_TIME,
+		                       error);
+#endif
 		return retval ? 0 : -1;
 	}
 
--- a/libmate-desktop/mate-rr-labeler.c
+++ b/libmate-desktop/mate-rr-labeler.c
@@ -361,11 +361,22 @@ position_window (MateRRLabeler  *labeler
 {
 	GdkRectangle    workarea;
 	GdkRectangle    monitor;
+#if GTK_CHECK_VERSION (3, 22, 0)
 	GdkMonitor     *monitor_num;
+#else
+	gint            monitor_num;
+#endif
 
 	get_work_area (labeler, &workarea);
+#if GTK_CHECK_VERSION (3, 22, 0)
 	monitor_num = gdk_display_get_monitor_at_point (gdk_screen_get_display (labeler->priv->screen), x, y);
 	gdk_monitor_get_geometry (monitor_num, &monitor);
+#else
+	monitor_num = gdk_screen_get_monitor_at_point (labeler->priv->screen, x, y);
+	gdk_screen_get_monitor_geometry (labeler->priv->screen,
+                                         monitor_num,
+                                         &monitor);
+#endif
 	gdk_rectangle_intersect (&monitor, &workarea, &workarea);
 
 	gtk_window_move (GTK_WINDOW (window), workarea.x, workarea.y);
openSUSE Build Service is sponsored by