diff -Nru gnome-desktop3-3.18.2/debian/changelog gnome-desktop3-3.18.2/debian/changelog --- gnome-desktop3-3.18.2/debian/changelog 2015-11-11 12:03:57.000000000 +1100 +++ gnome-desktop3-3.18.2/debian/changelog 2015-11-14 08:52:49.000000000 +1100 @@ -1,3 +1,25 @@ +gnome-desktop3 (3.18.2-1ubuntu1) xenial; urgency=low + + * Merge from Debian unstable. (LP: #1515749), Remaining changes: + - debian/patches: + + 04_compute_average_color.patch: Compute the avergage color in + gnome-desktop itself, not in unity to fix some races (LP #963140) + + tweak_color_computation.patch, Patch from Gord, no patch header, + no bug link. + + git_revert_draw_background.patch + + ubuntu_language.patch, Ported relevant bits from g-c-c + 52_region_language.patch, as required for gnome 3.8 region panel + + ubuntu_language_list_from_SUPPORTED.patch, + adds api to get list of available languages from SUPPORTED file. + To be used by gnome 3.8 region panel language installation. + + gnomebg_hidpi_image.patch, + gnome_bg_create_surface: always honor device scale, that fixes + the wallpaper rendering in hidpi config under ubiquity (lp: #1382291) + - debian/libgnome-desktop-3-12.symbols: + + Add symbols included in Ubuntu patches + + -- Jackson Doak Sat, 14 Nov 2015 08:52:34 +1100 + gnome-desktop3 (3.18.2-1) unstable; urgency=medium [ Laurent Bigonville ] @@ -9,6 +31,30 @@ -- Michael Biebl Wed, 11 Nov 2015 02:03:56 +0100 +gnome-desktop3 (3.18.1-1ubuntu1) xenial; urgency=low + + * Merge with Debian (LP: #1510813), Remaining changes: + - debian/patches: + + 04_compute_average_color.patch: Compute the avergage color in + gnome-desktop itself, not in unity to fix some races (LP #963140) + + tweak_color_computation.patch, Patch from Gord, no patch header, + no bug link. + + git_revert_draw_background.patch + + ubuntu_language.patch, Ported relevant bits from g-c-c + 52_region_language.patch, as required for gnome 3.8 region panel + + ubuntu_language_list_from_SUPPORTED.patch, + adds api to get list of available languages from SUPPORTED file. + To be used by gnome 3.8 region panel language installation. + + gnomebg_hidpi_image.patch, + gnome_bg_create_surface: always honor device scale, that fixes + the wallpaper rendering in hidpi config under ubiquity (lp: #1382291) + - debian/libgnome-desktop-3-12.symbols: + + Add symbols included in Ubuntu patches + - debian/control.in: + + Mark gnome-desktop3-data Multi-Arch: foreign + + -- Jackson Doak Wed, 14 Oct 2015 22:11:22 +0000 + gnome-desktop3 (3.18.1-1) unstable; urgency=medium [ Andreas Henriksson ] @@ -55,6 +101,42 @@ -- Andreas Henriksson Wed, 16 Sep 2015 16:20:07 +0200 +gnome-desktop3 (3.16.2-2ubuntu2) wily; urgency=medium + + * debian/patches/ubuntu_language_list_from_SUPPORTED.patch: don't + strip the territory code from languages returned by + gnome_get_all_languages() (LP: #1479907) + + -- Tim Lunn Fri, 11 Sep 2015 15:10:16 +1000 + +gnome-desktop3 (3.16.2-2ubuntu1) wily; urgency=medium + + * Merge with Debian (LP: #1468941), Remaining changes: + - debian/patches: + + 04_compute_average_color.patch: Compute the avergage color in + gnome-desktop itself, not in unity to fix some races (LP #963140) + + tweak_color_computation.patch, Patch from Gord, no patch header, + no bug link. + + git_revert_draw_background.patch + + ubuntu_language.patch, Ported relevant bits from g-c-c + 52_region_language.patch, as required for gnome 3.8 region panel + + ubuntu_language_list_from_SUPPORTED.patch, + adds api to get list of available languages from SUPPORTED file. + To be used by gnome 3.8 region panel language installation. + + gnomebg_hidpi_image.patch, + gnome_bg_create_surface: always honor device scale, that fixes + the wallpaper rendering in hidpi config under ubiquity (lp: #1382291) + - debian/libgnome-desktop-3-10.symbols: + + Add symbols included in Ubuntu patches + - debian/control.in: + + Mark gnome-desktop3-data Multi-Arch: foreign + + [ Gunnar Hjalmarsson ] + * debian/patches/ubuntu_language.patch: + - Show possible locale modifier in formats list (LP: #1440275). + + -- Tim Lunn Tue, 30 Jun 2015 18:17:53 +1000 + gnome-desktop3 (3.16.2-2) unstable; urgency=medium * Add missing trailing slash to DEB_CONFIGURE_EXTRA_FLAGS arguments. @@ -78,6 +160,44 @@ -- Michael Biebl Tue, 26 May 2015 02:13:04 +0200 +gnome-desktop3 (3.14.1-1ubuntu3) wily; urgency=medium + + * debian/patches/ubuntu_language.patch: + - Drop modification of collect_locales() in gnome-languages.c + (LP: #1440275). + + -- Gunnar Hjalmarsson Tue, 23 Jun 2015 22:49:00 +0200 + +gnome-desktop3 (3.14.1-1ubuntu2) vivid; urgency=medium + + * debian/patches/gnomebg_hidpi_image.patch: + - gnome_bg_create_surface: always honor device scale, that fixes + the wallpaper rendering in hidpi config under ubiquity, + thanks Lars Uebernickel (lp: #1382291) + + -- Sebastien Bacher Wed, 18 Mar 2015 18:16:55 +0100 + +gnome-desktop3 (3.14.1-1ubuntu1) vivid; urgency=medium + + * Merge with Debian, Remaining changes: + - debian/patches: + + 04_compute_average_color.patch: Compute the avergage color in + gnome-desktop itself, not in unity to fix some races (LP #963140) + + tweak_color_computation.patch, Patch from Gord, no patch header, + no bug link. + + git_revert_draw_background.patch + + ubuntu_language.patch, Ported relevant bits from g-c-c + 52_region_language.patch, as required for gnome 3.8 region panel + + ubuntu_language_list_from_SUPPORTED.patch, + adds api to get list of available languages from SUPPORTED file. + To be used by gnome 3.8 region panel language installation. + - debian/libgnome-desktop-3-10.symbols: + + Add symbols included in Ubuntu patches + - debian/control.in: + + Mark gnome-desktop3-data Multi-Arch: foreign + + -- Jackson Doak Tue, 31 Oct 2014 07:46:09 +1100 + gnome-desktop3 (3.14.1-1) unstable; urgency=medium [ Tim Lunn ] @@ -104,6 +224,33 @@ -- Andreas Henriksson Sat, 06 Sep 2014 05:54:46 -0700 +gnome-desktop3 (3.12.2-2ubuntu1) utopic; urgency=medium + + * New upstream release (LP: #1372346) + * Merge with Debian, Remaining changes: + - debian/patches: + + 04_compute_average_color.patch: Compute the avergage color in + gnome-desktop itself, not in unity to fix some races (LP #963140) + + tweak_color_computation.patch, Patch from Gord, no patch header, + no bug link. + + git_revert_draw_background.patch + + ubuntu_language.patch, Ported relevant bits from g-c-c + 52_region_language.patch, as required for gnome 3.8 region panel + + ubuntu_language_list_from_SUPPORTED.patch, + adds api to get list of available languages from SUPPORTED file. + To be used by gnome 3.8 region panel language installation. + - debian/rules: + + drop obsolete --disable-scrollkeeper configure flag + - debian/libgnome-desktop-3-10.symbols: + + Add symbols included in Ubuntu patches + - debian/control.in: + + Mark gnome-desktop3-data Multi-Arch: foreign + * Dropped changes: + - 02_refuse_to_break_GL_compositors.patch: + + xrandr code has moved into libunity-settings-daemon now + + -- Tim Lunn Fri, 12 Sep 2014 07:22:38 +1000 + gnome-desktop3 (3.12.2-2) unstable; urgency=medium * Add debian/patches/realpath-PATH_MAX.patch (from upstream libgsystem) @@ -178,6 +325,33 @@ -- Laurent Bigonville Wed, 04 Sep 2013 20:16:36 +0200 +gnome-desktop3 (3.8.4-0ubuntu3) trusty; urgency=medium + + * debian/patches/backlight-property-name.patch: + - Use the corrent backlight property name as specified in the XRANDR spec + (LP: #947919) + + -- Robert Ancell Mon, 17 Mar 2014 17:28:55 +1300 + +gnome-desktop3 (3.8.4-0ubuntu2) trusty; urgency=low + + * debian/patches/ignore_errors_with_primary_outputs.patch: + - Ignore failures when setting the primary output (LP: 1224254). + + -- Alberto Milone Tue, 03 Dec 2013 15:58:57 +0100 + +gnome-desktop3 (3.8.4-0ubuntu1) saucy; urgency=low + + * New upstream bugfix release + - Initialize gettext before constructing a wall clock + - Update pnp.ids from upstream hwdata + - Fix crash when XRRSetCrtcConfig() fails + - Prevent a crash with unknown language/country codes + - Ensure strings from xkeyboard-config are UTF-8 + - Translation updates + + -- Jeremy Bicha Wed, 04 Sep 2013 15:08:54 -0400 + gnome-desktop3 (3.8.3-1) experimental; urgency=low * Remove obsolete build dependency on scrollkeeper. @@ -185,6 +359,52 @@ -- Emilio Pozuelo Monfort Sat, 08 Jun 2013 18:21:56 +0200 +gnome-desktop3 (3.8.3-0ubuntu1) saucy; urgency=low + + * New upstream release + * debian/control.in: + - Drop obsolete gnome-doc-utils and scrollkeeper build dependencies + + -- Jeremy Bicha Mon, 22 Jul 2013 01:39:16 -0400 + +gnome-desktop3 (3.8.2-0ubuntu2) saucy; urgency=low + + * debian/patches/git_no_filename_warning.patch: + - "gnome-bg: objects without a filename are not slideshows", + that should fix the warnings that are displayed by the appareance + capplet on start (which are due to solid color backgrounds) + + -- Sebastien Bacher Tue, 11 Jun 2013 17:28:13 +0200 + +gnome-desktop3 (3.8.2-0ubuntu1) saucy; urgency=low + + * New upstream release + * Sync with Debian (LP: #1184812) Remaining changes: + - debian/patches: + + 04_compute_average_color.patch: Compute the avergage color in + gnome-desktop itself, not in unity to fix some races (LP #963140) + + tweak_color_computation.patch, Patch from Gord, no patch header, + no bug link. + + git_revert_draw_background.patch + + ubuntu_language.patch, Ported relevant bits from g-c-c + 52_region_language.patch, as required for gnome 3.8 region panel + + ubuntu_language_list_from_SUPPORTED.patch, + adds api to get list of available languages from SUPPORTED file. + To be used by gnome 3.8 region panel language installation. + - debian/control.in: + + Don't break gnome-shell << 3.7.90 + + Use source:Version for gnome-desktop3-data Depend + + Add epoch to gnome-desktop3-data's Breaks/Replaces, as our old + gnome-desktop source package introduced an epoch. This needs to be + kept until after 14.04 LTS. + - Install helper tools into a versioned directory (by overriding + libexecdir). They could alternatively be installed in a separate package + * Dropped changes: + - 02_refuse_to_break_GL_compositors.patch: + + Doesn't appear to be needed any more + + -- Tim Lunn Tue, 28 May 2013 09:10:46 +1000 + gnome-desktop3 (3.8.0.1-2) experimental; urgency=low * debian/libgnome-desktop-3-7.symbols: @@ -2213,3 +2433,4 @@ * Initial Release. -- Jim Pick Mon, 16 Mar 1998 15:27:43 -0800 + diff -Nru gnome-desktop3-3.18.2/debian/control gnome-desktop3-3.18.2/debian/control --- gnome-desktop3-3.18.2/debian/control 2015-11-11 12:05:32.000000000 +1100 +++ gnome-desktop3-3.18.2/debian/control 2015-11-14 08:53:18.000000000 +1100 @@ -5,8 +5,9 @@ Source: gnome-desktop3 Section: gnome Priority: optional -Maintainer: Debian GNOME Maintainers -Uploaders: Andreas Henriksson , Michael Biebl , Sjoerd Simons +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Debian GNOME Maintainers +Uploaders: Andreas Henriksson , Debian GNOME Maintainers , Michael Biebl Vcs-Svn: svn://anonscm.debian.org/pkg-gnome/desktop/unstable/gnome-desktop3 Vcs-Browser: https://anonscm.debian.org/viewvc/pkg-gnome/desktop/unstable/gnome-desktop3 Standards-Version: 3.9.6 diff -Nru gnome-desktop3-3.18.2/debian/control.in gnome-desktop3-3.18.2/debian/control.in --- gnome-desktop3-3.18.2/debian/control.in 2015-10-15 04:30:24.000000000 +1100 +++ gnome-desktop3-3.18.2/debian/control.in 2015-11-11 15:45:04.000000000 +1100 @@ -1,7 +1,8 @@ Source: gnome-desktop3 Section: gnome Priority: optional -Maintainer: Debian GNOME Maintainers +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Debian GNOME Maintainers Uploaders: @GNOME_TEAM@ Vcs-Svn: svn://anonscm.debian.org/pkg-gnome/desktop/unstable/gnome-desktop3 Vcs-Browser: https://anonscm.debian.org/viewvc/pkg-gnome/desktop/unstable/gnome-desktop3 diff -Nru gnome-desktop3-3.18.2/debian/libgnome-desktop-3-12.symbols gnome-desktop3-3.18.2/debian/libgnome-desktop-3-12.symbols --- gnome-desktop3-3.18.2/debian/libgnome-desktop-3-12.symbols 2015-10-15 03:40:25.000000000 +1100 +++ gnome-desktop3-3.18.2/debian/libgnome-desktop-3-12.symbols 2015-11-11 15:45:04.000000000 +1100 @@ -12,6 +12,7 @@ gnome_bg_crossfade_stop@Base 3.17.92 gnome_bg_draw@Base 3.17.92 gnome_bg_get_color@Base 3.17.92 + gnome_bg_get_draw_background@Base 3.18.1 gnome_bg_get_filename@Base 3.17.92 gnome_bg_get_image_size@Base 3.17.92 gnome_bg_get_placement@Base 3.17.92 @@ -23,6 +24,7 @@ gnome_bg_new@Base 3.17.92 gnome_bg_save_to_preferences@Base 3.17.92 gnome_bg_set_color@Base 3.17.92 + gnome_bg_set_draw_background@Base 3.18.1 gnome_bg_set_filename@Base 3.17.92 gnome_bg_set_placement@Base 3.17.92 gnome_bg_set_surface_as_root@Base 3.17.92 @@ -50,6 +52,7 @@ gnome_desktop_thumbnail_md5@Base 3.17.92 gnome_desktop_thumbnail_path_for_uri@Base 3.17.92 gnome_desktop_thumbnail_scale_down_pixbuf@Base 3.17.92 + gnome_get_all_languages@Base 3.18.1 gnome_get_all_locales@Base 3.17.92 gnome_get_country_from_code@Base 3.17.92 gnome_get_country_from_locale@Base 3.17.92 diff -Nru gnome-desktop3-3.18.2/debian/patches/04_compute_average_color.patch gnome-desktop3-3.18.2/debian/patches/04_compute_average_color.patch --- gnome-desktop3-3.18.2/debian/patches/04_compute_average_color.patch 1970-01-01 10:00:00.000000000 +1000 +++ gnome-desktop3-3.18.2/debian/patches/04_compute_average_color.patch 2015-07-01 16:58:26.000000000 +1000 @@ -0,0 +1,171 @@ +=== modified file 'libgnome-desktop/gnome-bg.c' +Index: gnome-desktop3-3.7.90/libgnome-desktop/gnome-bg.c +=================================================================== +--- gnome-desktop3-3.7.90.orig/libgnome-desktop/gnome-bg.c 2013-02-23 10:33:04.632959212 -0500 ++++ gnome-desktop3-3.7.90/libgnome-desktop/gnome-bg.c 2013-02-23 10:33:25.224958351 -0500 +@@ -59,6 +59,19 @@ + in the slideshow is less than 60 seconds away */ + #define KEEP_EXPENSIVE_CACHE_SECS 60 + ++#define QUAD_MAX_LEVEL_OF_RECURSION 16 ++#define QUAD_MIN_LEVEL_OF_RECURSION 2 ++ ++/* We're weighting the left side of the screen higher than ++ the right because the launcher and dash are on that side ++ of the screen. */ ++#define QUAD_CORNER_WEIGHT_NW 3 ++#define QUAD_CORNER_WEIGHT_NE 1 ++#define QUAD_CORNER_WEIGHT_SE 1 ++#define QUAD_CORNER_WEIGHT_SW 3 ++#define QUAD_CORNER_WEIGHT_CENTER 2 ++#define QUAD_CORNER_WEIGHT_TOTAL (QUAD_CORNER_WEIGHT_NW + QUAD_CORNER_WEIGHT_NE + QUAD_CORNER_WEIGHT_SE + QUAD_CORNER_WEIGHT_SW + QUAD_CORNER_WEIGHT_CENTER) ++ + /* This is the size of the GdkRGB dither matrix, in order to avoid + * bad dithering when tiling the gradient + */ +@@ -2283,10 +2296,137 @@ + } + + /* Pixbuf utilities */ ++G_INLINE_FUNC GdkRGBA ++get_pixbuf_sample (guchar *pixels, ++ gint rowstride, ++ gint channels, ++ gint x, ++ gint y) ++{ ++ GdkRGBA sample; ++ gdouble dd = 0xFF; ++ guchar *p = pixels + ((y * rowstride) + (x * channels)); ++ ++ sample.red = *p++ / dd; ++ sample.green = *p++ / dd; ++ sample.blue = *p++ / dd; ++ sample.alpha = 1.0f; ++ ++ return sample; ++} ++ ++G_INLINE_FUNC gboolean ++is_color_different (const GdkRGBA color_a, ++ const GdkRGBA color_b) ++{ ++ GdkRGBA diff; ++ ++ diff.red = color_a.red - color_b.red; ++ diff.green = color_a.green - color_b.green; ++ diff.blue = color_a.blue - color_b.blue; ++ diff.alpha = 1.0f; ++ ++ if (fabs (diff.red) > 0.15 || ++ fabs (diff.green) > 0.15 || ++ fabs (diff.blue) > 0.15) ++ return TRUE; ++ ++ return FALSE; ++} ++ ++static GdkRGBA ++get_quad_average (gint x, ++ gint y, ++ gint width, ++ gint height, ++ gint level_of_recursion, ++ guchar *pixels, ++ gint rowstride, ++ gint channels) ++{ ++ // samples four corners ++ // c1-----c2 ++ // | | ++ // c3-----c4 ++ ++ GdkRGBA average; ++ GdkRGBA corner1 = get_pixbuf_sample (pixels, rowstride, channels, x , y ); ++ GdkRGBA corner2 = get_pixbuf_sample (pixels, rowstride, channels, x + width, y ); ++ GdkRGBA corner3 = get_pixbuf_sample (pixels, rowstride, channels, x , y + height); ++ GdkRGBA corner4 = get_pixbuf_sample (pixels, rowstride, channels, x + width, y + height); ++ GdkRGBA centre = get_pixbuf_sample (pixels, rowstride, channels, x + (width / 2), y + (height / 2)); ++ ++ /* If we're over the max we want to just take the average and be happy ++ with that value */ ++ if (level_of_recursion < QUAD_MAX_LEVEL_OF_RECURSION) { ++ /* Otherwise we want to look at each value and check it's distance ++ from the center color and take the average if they're far apart. */ ++ ++ /* corner 1 */ ++ if (level_of_recursion < QUAD_MIN_LEVEL_OF_RECURSION || ++ is_color_different(corner1, centre)) { ++ corner1 = get_quad_average (x, y, width/2, height/2, level_of_recursion + 1, pixels, rowstride, channels); ++ } ++ ++ /* corner 2 */ ++ if (level_of_recursion < QUAD_MIN_LEVEL_OF_RECURSION || ++ is_color_different(corner2, centre)) { ++ corner2 = get_quad_average (x + width/2, y, width/2, height/2, level_of_recursion + 1, pixels, rowstride, channels); ++ } ++ ++ /* corner 3 */ ++ if (level_of_recursion < QUAD_MIN_LEVEL_OF_RECURSION || ++ is_color_different(corner3, centre)) { ++ corner3 = get_quad_average (x, y + height/2, width/2, height/2, level_of_recursion + 1, pixels, rowstride, channels); ++ } ++ ++ /* corner 4 */ ++ if (level_of_recursion < QUAD_MIN_LEVEL_OF_RECURSION || ++ is_color_different(corner4, centre)) { ++ corner4 = get_quad_average (x + width/2, y + height/2, width/2, height/2, level_of_recursion + 1, pixels, rowstride, channels); ++ } ++ } ++ ++ average.red = ((corner1.red * QUAD_CORNER_WEIGHT_NW) + ++ (corner3.red * QUAD_CORNER_WEIGHT_SW) + ++ (centre.red * QUAD_CORNER_WEIGHT_CENTER) + ++ (corner2.red * QUAD_CORNER_WEIGHT_NE) + ++ (corner4.red * QUAD_CORNER_WEIGHT_SE)) ++ / QUAD_CORNER_WEIGHT_TOTAL; ++ average.green = ((corner1.green * QUAD_CORNER_WEIGHT_NW) + ++ (corner3.green * QUAD_CORNER_WEIGHT_SW) + ++ (centre.green * QUAD_CORNER_WEIGHT_CENTER) + ++ (corner2.green * QUAD_CORNER_WEIGHT_NE) + ++ (corner4.green * QUAD_CORNER_WEIGHT_SE)) ++ / QUAD_CORNER_WEIGHT_TOTAL; ++ average.blue = ((corner1.blue * QUAD_CORNER_WEIGHT_NW) + ++ (corner3.blue * QUAD_CORNER_WEIGHT_SW) + ++ (centre.blue * QUAD_CORNER_WEIGHT_CENTER) + ++ (corner2.blue * QUAD_CORNER_WEIGHT_NE) + ++ (corner4.blue * QUAD_CORNER_WEIGHT_SE)) ++ / QUAD_CORNER_WEIGHT_TOTAL; ++ average.alpha = 1.0f; ++ ++ return average; ++} ++ + static void + pixbuf_average_value (GdkPixbuf *pixbuf, + GdkRGBA *result) + { ++ GdkRGBA average; ++ average = get_quad_average (0, 0, ++ gdk_pixbuf_get_width (pixbuf) - 1, gdk_pixbuf_get_height (pixbuf) - 1, ++ 1, ++ gdk_pixbuf_get_pixels (pixbuf), ++ gdk_pixbuf_get_rowstride (pixbuf), ++ gdk_pixbuf_get_n_channels (pixbuf)); ++ result->red = average.red; ++ result->green = average.green; ++ result->blue = average.blue; ++ result->alpha = average.alpha; ++ ++#if 0 + guint64 a_total, r_total, g_total, b_total; + guint row, column; + int row_stride; +@@ -2346,6 +2486,7 @@ + result->red = r_total / dd; + result->green = g_total / dd; + result->blue = b_total / dd; ++#endif + } + + static GdkPixbuf * diff -Nru gnome-desktop3-3.18.2/debian/patches/git_revert_draw_background.patch gnome-desktop3-3.18.2/debian/patches/git_revert_draw_background.patch --- gnome-desktop3-3.18.2/debian/patches/git_revert_draw_background.patch 1970-01-01 10:00:00.000000000 +1000 +++ gnome-desktop3-3.18.2/debian/patches/git_revert_draw_background.patch 2015-07-01 16:58:26.000000000 +1000 @@ -0,0 +1,101 @@ +From a256e037a85447b58f9aab8fd3cc7a8056a3f375 Mon Sep 17 00:00:00 2001 +From: Tim Lunn +Date: Thu, 21 Mar 2013 11:23:33 +1100 +Subject: [PATCH] Revert "GnomeBG: remove the ability not to draw the + background" + +This reverts commit ac536ef65ee399c3267b29049c62c70074b0a97d. + + +https://bugzilla.gnome.org/show_bug.cgi?id=690378 +--- + libgnome-desktop/gnome-bg.c | 27 +++++++++++++++++++++++++++ + libgnome-desktop/gnome-bg.h | 4 +++- + 2 files changed, 30 insertions(+), 1 deletion(-) + +diff --git a/libgnome-desktop/gnome-bg.c b/libgnome-desktop/gnome-bg.c +index 13e4ace..36e4a5f 100644 +--- a/libgnome-desktop/gnome-bg.c ++++ b/libgnome-desktop/gnome-bg.c +@@ -47,6 +47,7 @@ Author: Soren Sandmann + #include "gnome-bg-slide-show.h" + #include "gnome-bg-crossfade.h" + ++#define BG_KEY_DRAW_BACKGROUND "draw-background" + #define BG_KEY_PRIMARY_COLOR "primary-color" + #define BG_KEY_SECONDARY_COLOR "secondary-color" + #define BG_KEY_COLOR_TYPE "color-shading-type" +@@ -78,6 +79,7 @@ struct _GnomeBG + GDesktopBackgroundShading color_type; + GdkColor primary; + GdkColor secondary; ++ gboolean is_enabled; + + GFileMonitor * file_monitor; + +@@ -304,6 +306,8 @@ gnome_bg_load_from_preferences (GnomeBG *bg, + g_return_if_fail (GNOME_IS_BG (bg)); + g_return_if_fail (G_IS_SETTINGS (settings)); + ++ bg->is_enabled = g_settings_get_boolean (settings, BG_KEY_DRAW_BACKGROUND); ++ + /* Filename */ + filename = g_settings_get_mapped (settings, BG_KEY_PICTURE_URI, bg_gsettings_mapping, NULL); + +@@ -350,6 +354,7 @@ gnome_bg_save_to_preferences (GnomeBG *bg, + uri = g_filename_to_uri (bg->filename, NULL, NULL); + if (uri == NULL) + uri = g_strdup (""); ++ g_settings_set_boolean (settings, BG_KEY_DRAW_BACKGROUND, bg->is_enabled); + g_settings_set_string (settings, BG_KEY_PICTURE_URI, uri); + g_settings_set_string (settings, BG_KEY_PRIMARY_COLOR, primary); + g_settings_set_string (settings, BG_KEY_SECONDARY_COLOR, secondary); +@@ -504,6 +509,28 @@ gnome_bg_get_color (GnomeBG *bg, + *secondary = bg->secondary; + } + ++void ++gnome_bg_set_draw_background (GnomeBG *bg, ++ gboolean draw_background) ++{ ++ g_return_if_fail (bg != NULL); ++ ++ if (bg->is_enabled != draw_background) { ++ bg->is_enabled = draw_background; ++ ++ queue_changed (bg); ++ } ++} ++ ++gboolean ++gnome_bg_get_draw_background (GnomeBG *bg) ++{ ++ g_return_val_if_fail (bg != NULL, FALSE); ++ ++ return bg->is_enabled; ++} ++ ++ + const gchar * + gnome_bg_get_filename (GnomeBG *bg) + { +diff --git a/libgnome-desktop/gnome-bg.h b/libgnome-desktop/gnome-bg.h +index 69d1bef..fdd4cc4 100644 +--- a/libgnome-desktop/gnome-bg.h ++++ b/libgnome-desktop/gnome-bg.h +@@ -63,9 +63,11 @@ void gnome_bg_set_color (GnomeBG *bg, + GDesktopBackgroundShading type, + GdkColor *primary, + GdkColor *secondary); +- ++void gnome_bg_set_draw_background (GnomeBG *bg, ++ gboolean draw_background); + /* Getters */ + GDesktopBackgroundStyle gnome_bg_get_placement (GnomeBG *bg); ++gboolean gnome_bg_get_draw_background (GnomeBG *bg); + void gnome_bg_get_color (GnomeBG *bg, + GDesktopBackgroundShading *type, + GdkColor *primary, +-- +1.8.1.2 + diff -Nru gnome-desktop3-3.18.2/debian/patches/gnomebg_hidpi_image.patch gnome-desktop3-3.18.2/debian/patches/gnomebg_hidpi_image.patch --- gnome-desktop3-3.18.2/debian/patches/gnomebg_hidpi_image.patch 1970-01-01 10:00:00.000000000 +1000 +++ gnome-desktop3-3.18.2/debian/patches/gnomebg_hidpi_image.patch 2015-07-01 16:58:26.000000000 +1000 @@ -0,0 +1,143 @@ +From cbc01ea44cb5990a3ab9fff82f5932d501357a03 Mon Sep 17 00:00:00 2001 +From: Lars Uebernickel +Date: Tue, 17 Mar 2015 13:18:07 +0100 +Subject: [PATCH] gnome_bg_create_surface: always honor device scale + +Also when creating the surface through a temporary X connection. The +returned surface now always has the same size and device scale set, +regardless of whether @is_root is set. + +Also always draw the backgrounds scaled to the size of the destination +window. + +https://bugzilla.gnome.org/show_bug.cgi?id=746044 +--- + libgnome-desktop/gnome-bg.c | 55 ++++++++++++++++++++++++++++++++++++++------- + 1 file changed, 47 insertions(+), 8 deletions(-) + +Index: gnome-desktop3-3.14.1/libgnome-desktop/gnome-bg.c +=================================================================== +--- gnome-desktop3-3.14.1.orig/libgnome-desktop/gnome-bg.c ++++ gnome-desktop3-3.14.1/libgnome-desktop/gnome-bg.c +@@ -784,7 +784,8 @@ draw_color (GnomeBG *bg, + static void + draw_color_each_monitor (GnomeBG *bg, + GdkPixbuf *dest, +- GdkScreen *screen) ++ GdkScreen *screen, ++ gint scale) + { + GdkRectangle rect; + gint num_monitors; +@@ -793,6 +794,10 @@ draw_color_each_monitor (GnomeBG *bg, + num_monitors = gdk_screen_get_n_monitors (screen); + for (monitor = 0; monitor < num_monitors; monitor++) { + gdk_screen_get_monitor_geometry (screen, monitor, &rect); ++ rect.x *= scale; ++ rect.y *= scale; ++ rect.width *= scale; ++ rect.height *= scale; + draw_color_area (bg, dest, &rect); + } + } +@@ -962,7 +967,8 @@ draw_once (GnomeBG *bg, + static void + draw_each_monitor (GnomeBG *bg, + GdkPixbuf *dest, +- GdkScreen *screen) ++ GdkScreen *screen, ++ gint scale) + { + GdkRectangle rect; + gint num_monitors; +@@ -972,6 +978,10 @@ draw_each_monitor (GnomeBG *bg, + for (monitor = 0; monitor < num_monitors; monitor++) { + GdkPixbuf *pixbuf; + gdk_screen_get_monitor_geometry (screen, monitor, &rect); ++ rect.x *= scale; ++ rect.y *= scale; ++ rect.width *= scale; ++ rect.height *= scale; + pixbuf = get_pixbuf_for_size (bg, monitor, rect.width, rect.height); + if (pixbuf) { + draw_image_area (bg, +@@ -993,9 +1003,29 @@ gnome_bg_draw (GnomeBG *bg, + return; + + if (is_root && (bg->placement != G_DESKTOP_BACKGROUND_STYLE_SPANNED)) { +- draw_color_each_monitor (bg, dest, screen); ++ draw_color_each_monitor (bg, dest, screen, 1); + if (bg->placement != G_DESKTOP_BACKGROUND_STYLE_NONE) { +- draw_each_monitor (bg, dest, screen); ++ draw_each_monitor (bg, dest, screen, 1); ++ } ++ } else { ++ draw_color (bg, dest); ++ if (bg->placement != G_DESKTOP_BACKGROUND_STYLE_NONE) { ++ draw_once (bg, dest); ++ } ++ } ++} ++ ++static void ++gnome_bg_draw_at_scale (GnomeBG *bg, ++ GdkPixbuf *dest, ++ gint scale, ++ GdkScreen *screen, ++ gboolean is_root) ++{ ++ if (is_root && (bg->placement != G_DESKTOP_BACKGROUND_STYLE_SPANNED)) { ++ draw_color_each_monitor (bg, dest, screen, scale); ++ if (bg->placement != G_DESKTOP_BACKGROUND_STYLE_NONE) { ++ draw_each_monitor (bg, dest, screen, scale); + } + } else { + draw_color (bg, dest); +@@ -1079,6 +1109,7 @@ gnome_bg_create_surface (GnomeBG *bg + int height, + gboolean root) + { ++ gint scale; + int pm_width, pm_height; + cairo_surface_t *surface; + GdkRGBA average; +@@ -1087,6 +1118,8 @@ gnome_bg_create_surface (GnomeBG *bg + g_return_val_if_fail (bg != NULL, NULL); + g_return_val_if_fail (window != NULL, NULL); + ++ scale = gdk_window_get_scale_factor (window); ++ + if (bg->pixbuf_cache && + gdk_pixbuf_get_width (bg->pixbuf_cache) != width && + gdk_pixbuf_get_height (bg->pixbuf_cache) != height) { +@@ -1099,7 +1132,8 @@ gnome_bg_create_surface (GnomeBG *bg + + if (root) { + surface = make_root_pixmap (gdk_window_get_screen (window), +- pm_width, pm_height); ++ scale * pm_width, scale * pm_height); ++ cairo_surface_set_device_scale (surface, scale, scale); + } + else { + surface = gdk_window_create_similar_surface (window, +@@ -1120,12 +1154,17 @@ gnome_bg_create_surface (GnomeBG *bg + } + else { + GdkPixbuf *pixbuf; ++ cairo_surface_t *pixbuf_surface; + + pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, +- width, height); +- gnome_bg_draw (bg, pixbuf, gdk_window_get_screen (window), root); +- gdk_cairo_set_source_pixbuf (cr, pixbuf, 0, 0); ++ scale * width, scale * height); ++ gnome_bg_draw_at_scale (bg, pixbuf, scale, gdk_window_get_screen (window), root); + pixbuf_average_value (pixbuf, &average); ++ ++ pixbuf_surface = gdk_cairo_surface_create_from_pixbuf (pixbuf, 0, window); ++ cairo_set_source_surface (cr, pixbuf_surface, 0, 0); ++ ++ cairo_surface_destroy (pixbuf_surface); + g_object_unref (pixbuf); + } + diff -Nru gnome-desktop3-3.18.2/debian/patches/series gnome-desktop3-3.18.2/debian/patches/series --- gnome-desktop3-3.18.2/debian/patches/series 2015-10-15 03:42:32.000000000 +1100 +++ gnome-desktop3-3.18.2/debian/patches/series 2015-11-11 15:45:04.000000000 +1100 @@ -0,0 +1,6 @@ +04_compute_average_color.patch +tweak_color_computation.patch +git_revert_draw_background.patch +ubuntu_language.patch +ubuntu_language_list_from_SUPPORTED.patch +gnomebg_hidpi_image.patch diff -Nru gnome-desktop3-3.18.2/debian/patches/tweak_color_computation.patch gnome-desktop3-3.18.2/debian/patches/tweak_color_computation.patch --- gnome-desktop3-3.18.2/debian/patches/tweak_color_computation.patch 1970-01-01 10:00:00.000000000 +1000 +++ gnome-desktop3-3.18.2/debian/patches/tweak_color_computation.patch 2015-07-01 16:58:26.000000000 +1000 @@ -0,0 +1,25 @@ +# Description: tweak color computation looking to the unity launcher side +# UbuntuSpecific: tweak for unity, nothing upstream uses the color computation +# yet anyway so it's not an issue +Index: b/libgnome-desktop/gnome-bg.c +=================================================================== +--- a/libgnome-desktop/gnome-bg.c ++++ b/libgnome-desktop/gnome-bg.c +@@ -2558,7 +2558,7 @@ + if (gdk_pixbuf_get_has_alpha (pixbuf)) { + for (row = 0; row < height; row++) { + p = pixels + (row * row_stride); +- for (column = 0; column < width; column++) { ++ for (column = 0; column < width / 2; column++) { + r = *p++; + g = *p++; + b = *p++; +@@ -2575,7 +2575,7 @@ + } else { + for (row = 0; row < height; row++) { + p = pixels + (row * row_stride); +- for (column = 0; column < width; column++) { ++ for (column = 0; column < width / 2; column++) { + r = *p++; + g = *p++; + b = *p++; diff -Nru gnome-desktop3-3.18.2/debian/patches/ubuntu_language_list_from_SUPPORTED.patch gnome-desktop3-3.18.2/debian/patches/ubuntu_language_list_from_SUPPORTED.patch --- gnome-desktop3-3.18.2/debian/patches/ubuntu_language_list_from_SUPPORTED.patch 1970-01-01 10:00:00.000000000 +1000 +++ gnome-desktop3-3.18.2/debian/patches/ubuntu_language_list_from_SUPPORTED.patch 2015-09-11 15:09:52.000000000 +1000 @@ -0,0 +1,161 @@ +From 9197a7e6c090a5451763c61b1f3665ed16e9241d Mon Sep 17 00:00:00 2001 +From: Tim Lunn +Date: Thu, 23 May 2013 12:19:53 +1000 +Subject: [PATCH 2/2] Add api to collect a list of available languages from + SUPPORTED + +This patch provides a public api 'gnome_get_all_languages()' that returns a list of +all available language codes as parsed from /usr/share/i18n/SUPPORTED. + +-- + libgnome-desktop/gnome-languages.c | 103 +++++++++++++++++++++++++++++++++++++ + libgnome-desktop/gnome-languages.h | 1 + + 2 files changed, 104 insertions(+) + +Index: gnome-desktop3-3.16.2/libgnome-desktop/gnome-languages.c +=================================================================== +--- gnome-desktop3-3.16.2.orig/libgnome-desktop/gnome-languages.c ++++ gnome-desktop3-3.16.2/libgnome-desktop/gnome-languages.c +@@ -59,6 +59,7 @@ typedef struct _GnomeLocale { + } GnomeLocale; + + static GHashTable *gnome_languages_map; ++static GHashTable *gnome_available_languages_map; + static GHashTable *gnome_territories_map; + static GHashTable *gnome_available_locales_map; + static GHashTable *gnome_language_count_map; +@@ -548,6 +549,55 @@ collect_locales_from_localebin (void) + return found_locales; + } + ++static gboolean ++collect_languages_from_supported (void) ++{ ++ /* Add installed languages */ ++ gboolean found_locales = FALSE; ++ gchar *file_contents = NULL; ++ gsize length; ++ char *line; ++ GError *error = NULL; ++ ++ if (g_file_get_contents ("/usr/share/i18n/SUPPORTED", &file_contents, &length, &error)) { ++ line = strtok (file_contents, "\n"); ++ while (line != NULL) { ++ gchar *lang; ++ ++ if (g_strrstr (line, "UTF-8")){ ++ char **split; ++ const char *name; ++ ++ split = g_strsplit (line, " ", 2); ++ ++ /* some special cases */ ++ if (g_strrstr (line, "zh_CN") || g_strrstr (line, "zh_SG")) ++ name = "zh_CN"; ++ else if (g_strrstr (line, "iw")) ++ name = "he"; ++ else ++ name = split[0]; ++ ++ lang = g_strdup(name); ++ ++ if (! g_hash_table_lookup (gnome_available_languages_map, lang)){ ++ g_hash_table_add (gnome_available_languages_map, g_strdup (lang)); ++ found_locales = TRUE; ++ } else { ++ g_free (lang); ++ } ++ g_strfreev (split); ++ } ++ line = strtok (NULL, "\n"); ++ } ++ g_free (file_contents); ++ } else { ++ g_warning ("Couldn't get available languages: %s", error->message); ++ g_error_free (error); ++ } ++ return found_locales; ++} ++ + static void + count_languages_and_territories (void) + { +@@ -580,6 +630,27 @@ count_languages_and_territories (void) + } + } + } ++static void ++collect_languages (void) ++{ ++ gboolean found_languages; ++ ++ if (gnome_available_languages_map == NULL) { ++ gnome_available_languages_map = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); ++ } ++ ++ found_languages = collect_languages_from_supported (); ++ ++ if (!found_languages) { ++#ifndef WITH_INCOMPLETE_LOCALES ++ g_warning ("Could not read list of available languages from, " ++ "/usr/share/i18n/SUPPORTED"); ++#endif ++ } ++ ++ return found_languages; ++ ++} + + static void + collect_locales (void) +@@ -1314,6 +1385,38 @@ gnome_get_all_locales (void) + } + g_ptr_array_add (array, NULL); + ++ return (char **) g_ptr_array_free (array, FALSE); ++} ++ ++/** ++ * gnome_get_all_languages: ++ * ++ * Gets all languages. ++ * ++ * Return value: (array zero-terminated=1) (element-type utf8) (transfer full): ++ * a newly allocated %NULL-terminated string array containing the ++ * available languages. Free with g_strfreev(). ++ * ++ * Since: 3.8 ++ */ ++char ** ++gnome_get_all_languages (void) ++{ ++ GHashTableIter iter; ++ gpointer key, value; ++ GPtrArray *array; ++ ++ if (gnome_available_languages_map == NULL) { ++ collect_languages (); ++ } ++ ++ array = g_ptr_array_new (); ++ g_hash_table_iter_init (&iter, gnome_available_languages_map); ++ while (g_hash_table_iter_next (&iter, &key, &value)) { ++ g_ptr_array_add (array, g_strdup (value)); ++ } ++ g_ptr_array_add (array, NULL); ++ + return (char **) g_ptr_array_free (array, FALSE); + } + +Index: gnome-desktop3-3.16.2/libgnome-desktop/gnome-languages.h +=================================================================== +--- gnome-desktop3-3.16.2.orig/libgnome-desktop/gnome-languages.h ++++ gnome-desktop3-3.16.2/libgnome-desktop/gnome-languages.h +@@ -34,6 +34,7 @@ char * gnome_get_language_from_lo + char * gnome_get_country_from_locale (const char *locale, + const char *translation); + char ** gnome_get_all_locales (void); ++char ** gnome_get_all_languages (void); + gboolean gnome_parse_locale (const char *locale, + char **language_codep, + char **country_codep, diff -Nru gnome-desktop3-3.18.2/debian/patches/ubuntu_language.patch gnome-desktop3-3.18.2/debian/patches/ubuntu_language.patch --- gnome-desktop3-3.18.2/debian/patches/ubuntu_language.patch 1970-01-01 10:00:00.000000000 +1000 +++ gnome-desktop3-3.18.2/debian/patches/ubuntu_language.patch 2015-07-01 16:58:29.000000000 +1000 @@ -0,0 +1,149 @@ +This patch was taken from gnome-control-center 52_region_language.patch, +where relevent language code used to live in 3.6 + +Description: Adapts the region capplet and the language chooser in the user accounts capplet +Forwarded: https://bugzilla.gnome.org/695939, https://bugzilla.gnome.org/695940 +Author: Gunnar Hjalmarsson +Last-Update: 2013-04-10 + + * Ubuntu isn't shipped with all languages installed and all locales generated. + Instead the users install the needed language pack(s), and the corresponding + locales are generated. + + * The 'common_name' field taken into account when parsing the iso-codes XML files + for language names. + +--- gnome-desktop-3.16.2.orig/libgnome-desktop/gnome-languages.c ++++ gnome-desktop-3.16.2/libgnome-desktop/gnome-languages.c +@@ -787,6 +787,7 @@ + const char *ccode_longT; + const char *ccode; + const char *ccode_id; ++ const char *lang_common_name; + const char *lang_name; + + if (! (g_str_equal (element_name, "iso_639_entry") || g_str_equal (element_name, "iso_639_3_entry")) +@@ -798,6 +799,7 @@ + ccode_longB = NULL; + ccode_longT = NULL; + ccode_id = NULL; ++ lang_common_name = NULL; + lang_name = NULL; + + while (*attr_names && *attr_values) { +@@ -834,6 +836,11 @@ + } + ccode_id = *attr_values; + } ++ } else if (g_str_equal (*attr_names, "common_name")) { ++ /* skip if empty */ ++ if (**attr_values) { ++ lang_common_name = *attr_values; ++ } + } else if (g_str_equal (*attr_names, "name")) { + lang_name = *attr_values; + } +@@ -842,6 +849,10 @@ + ++attr_values; + } + ++ if (lang_common_name != NULL) { ++ lang_name = lang_common_name; ++ } ++ + if (lang_name == NULL) { + return; + } +@@ -1084,6 +1095,7 @@ + char *langinfo_codeset; + char *translated_language; + char *translated_territory; ++ char *modifier; + gboolean is_utf8 = TRUE; + + g_return_val_if_fail (locale != NULL, NULL); +@@ -1101,12 +1113,13 @@ + language_code = NULL; + territory_code = NULL; + codeset_code = NULL; ++ modifier = NULL; + + gnome_parse_locale (locale, + &language_code, + &territory_code, + &codeset_code, +- NULL); ++ &modifier); + + if (language_code == NULL) { + goto out; +@@ -1132,7 +1145,7 @@ + translated_territory); + } + +- language_name_get_codeset_details (locale, &langinfo_codeset, &is_utf8); ++ //language_name_get_codeset_details (locale, &langinfo_codeset, &is_utf8); + + if (codeset_code == NULL && langinfo_codeset != NULL) { + codeset_code = g_strdup (langinfo_codeset); +@@ -1144,6 +1157,10 @@ + codeset_code); + } + ++ if (modifier != NULL) { ++ g_string_append_printf (full_language, " - %s", modifier); ++ } ++ + out: + g_free (language_code); + g_free (territory_code); +@@ -1151,6 +1168,7 @@ + g_free (langinfo_codeset); + g_free (translated_language); + g_free (translated_territory); ++ g_free (modifier); + + if (full_language->len == 0) { + g_string_free (full_language, TRUE); +@@ -1184,6 +1202,7 @@ + char *langinfo_codeset; + char *translated_language; + char *translated_territory; ++ char *modifier; + gboolean is_utf8 = TRUE; + + g_return_val_if_fail (locale != NULL, NULL); +@@ -1201,12 +1220,13 @@ + language_code = NULL; + territory_code = NULL; + codeset_code = NULL; ++ modifier = NULL; + + gnome_parse_locale (locale, + &language_code, + &territory_code, + &codeset_code, +- NULL); ++ &modifier); + + if (territory_code == NULL) { + goto out; +@@ -1219,6 +1239,10 @@ + goto out; + } + ++ if (modifier != NULL) { ++ g_string_append_printf (full_name, " - %s", modifier); ++ } ++ + if (language_code != NULL) { + translated_language = get_translated_language (language_code, translation); + } +@@ -1247,6 +1271,7 @@ + g_free (langinfo_codeset); + g_free (translated_language); + g_free (translated_territory); ++ g_free (modifier); + + if (full_name->len == 0) { + g_string_free (full_name, TRUE);