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
@@ -850,9 +850,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);
}
}
@@ -1026,14 +1032,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
@@ -411,6 +411,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;
@@ -424,6 +425,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);
gdk_error_trap_push ();
--- a/libmate-desktop/mate-desktop-item.c
+++ b/libmate-desktop/mate-desktop-item.c
@@ -2080,10 +2080,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
@@ -363,11 +363,22 @@ position_window (MateRRLabeler *labeler
{
GdkRectangle workarea;
GdkRectangle monitor;
+#if GTK_CHECK_VERSION (3, 22, 0)
GdkMonitor *monitor_num;
+#else
+ int 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);