summaryrefslogtreecommitdiff
path: root/gnome-base/gnome-control-center/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2019-03-03 13:42:34 +0000
committerV3n3RiX <venerix@redcorelinux.org>2019-03-03 13:42:34 +0000
commit066d27181e9a797ad9f8fc43b49fc9a10ff2f707 (patch)
tree3cb05783d73b2c33589ba305144a31c718e123cd /gnome-base/gnome-control-center/files
parent16449a80e28af2209916cc66d19c9a44ca2b90d9 (diff)
gentoo resync : 03.03.2019
Diffstat (limited to 'gnome-base/gnome-control-center/files')
-rw-r--r--gnome-base/gnome-control-center/files/3.26.2-gnome-desktop-3-28-compat.patch78
-rw-r--r--gnome-base/gnome-control-center/files/3.26.2-goa-lifecycle.patch95
-rw-r--r--gnome-base/gnome-control-center/files/3.26.2-without-wayland-fix.patch46
3 files changed, 219 insertions, 0 deletions
diff --git a/gnome-base/gnome-control-center/files/3.26.2-gnome-desktop-3-28-compat.patch b/gnome-base/gnome-control-center/files/3.26.2-gnome-desktop-3-28-compat.patch
new file mode 100644
index 000000000000..f90e0514dd7c
--- /dev/null
+++ b/gnome-base/gnome-control-center/files/3.26.2-gnome-desktop-3-28-compat.patch
@@ -0,0 +1,78 @@
+From 6c98cbb514b2a455dd27f3a32a48e43a65cd29a2 Mon Sep 17 00:00:00 2001
+From: Robert Ancell <robert.ancell@canonical.com>
+Date: Tue, 26 Sep 2017 14:12:13 -0400
+Subject: [PATCH 2/2] background: Remove GdkColor deprecation warnings
+
+https://bugzilla.gnome.org/show_bug.cgi?id=788205
+(cherry picked from commit ed03e9c49faafba132ab4077daeaf213b541aed7)
+---
+ configure.ac | 2 +-
+ panels/background/cc-background-item.c | 19 ++++++++++---------
+ 2 files changed, 11 insertions(+), 10 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 90579ac9f..f810bfb1f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -97,7 +97,7 @@ NETWORK_MANAGER_REQUIRED_VERSION=1.2.0
+ NETWORK_MANAGER_APPLET_REQUIRED_VERSION=1.2.0
+ MODEM_MANAGER_REQUIRED_VERSION=0.7
+ LIBNOTIFY_REQUIRED_VERSION=0.7.3
+-GNOME_DESKTOP_REQUIRED_VERSION=3.21.2
++GNOME_DESKTOP_REQUIRED_VERSION=3.27.3
+ SCHEMAS_REQUIRED_VERSION=3.21.4
+ LIBWACOM_REQUIRED_VERSION=0.7
+ CLUTTER_REQUIRED_VERSION=1.11.3
+diff --git a/panels/background/cc-background-item.c b/panels/background/cc-background-item.c
+index 92220f823..8f8759bd0 100644
+--- a/panels/background/cc-background-item.c
++++ b/panels/background/cc-background-item.c
+@@ -150,8 +150,9 @@ get_emblemed_pixbuf (CcBackgroundItem *item, GdkPixbuf *pixbuf, gint scale_facto
+ static void
+ set_bg_properties (CcBackgroundItem *item)
+ {
+- GdkColor pcolor = { 0, 0, 0, 0 };
+- GdkColor scolor = { 0, 0, 0, 0 };
++ GdkRGBA pcolor = { 0, 0, 0, 0 };
++ GdkRGBA scolor = { 0, 0, 0, 0 };
++ GdkColor p, s;
+
+ if (item->priv->uri) {
+ GFile *file;
+@@ -166,13 +167,13 @@ set_bg_properties (CcBackgroundItem *item)
+ }
+
+ if (item->priv->primary_color != NULL) {
+- gdk_color_parse (item->priv->primary_color, &pcolor);
++ gdk_rgba_parse (&pcolor, item->priv->primary_color);
+ }
+ if (item->priv->secondary_color != NULL) {
+- gdk_color_parse (item->priv->secondary_color, &scolor);
++ gdk_rgba_parse (&scolor, item->priv->secondary_color);
+ }
+
+- gnome_bg_set_color (item->priv->bg, item->priv->shading, &pcolor, &scolor);
++ gnome_bg_set_rgba (item->priv->bg, item->priv->shading, &pcolor, &scolor);
+ gnome_bg_set_placement (item->priv->bg, item->priv->placement);
+ }
+
+@@ -996,12 +997,12 @@ static gboolean
+ colors_equal (const char *a,
+ const char *b)
+ {
+- GdkColor color1, color2;
++ GdkRGBA color1, color2;
+
+- gdk_color_parse (a, &color1);
+- gdk_color_parse (b, &color2);
++ gdk_rgba_parse (&color1, a);
++ gdk_rgba_parse (&color2, b);
+
+- return gdk_color_equal (&color1, &color2);
++ return gdk_rgba_equal (&color1, &color2);
+ }
+
+ gboolean
+--
+2.17.0
+
diff --git a/gnome-base/gnome-control-center/files/3.26.2-goa-lifecycle.patch b/gnome-base/gnome-control-center/files/3.26.2-goa-lifecycle.patch
new file mode 100644
index 000000000000..bbc8befdf280
--- /dev/null
+++ b/gnome-base/gnome-control-center/files/3.26.2-goa-lifecycle.patch
@@ -0,0 +1,95 @@
+From a1bc1ae54d2330e32eac7b4df7c07393df87e7da Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Thu, 4 Oct 2018 11:28:15 +0200
+Subject: [PATCH 1/2] online-accounts: Track the lifecycle of CcGoaPanel across
+ async calls
+
+Due to an API bug in GNOME Online Accounts, the asynchronous
+goa_provider_get_all method doesn't accept a GCancellable argument.
+This makes it difficult to cancel an ongoing call when the CcGoaPanel
+gets destroyed.
+
+Prior to commit c26f8ae018900a55, this was hacked around by taking a
+reference on the panel for the duration of the call. Instead of
+cancelling a pending call on destruction, it would keep the panel alive
+until the call was over. However, that was lost during commit
+c26f8ae018900a55.
+
+One thing to bear in mind is that GtkWidgets, CcGoaPanel is one, can
+be destroyed by a gtk_widget_destroy call, which is subtly different
+than a simple sequence of g_object_unref calls. When gtk_widget_destroy
+is used, it invokes the GObject::dispose virtual method of the widget.
+It is expected this will cause anything holding a reference to this
+widget to drop their references, leading to GObject::finalize being
+called. However, there is no guarantee that this will happen in the
+same iteration of the GMainLoop. Therefore, it is possible that when
+the goa_provider_get_all call finishes, the CcGoaPanel might be in a
+disposed, but not yet finalized state.
+
+When a GObject is in a disposed-but-not-finalized state, only a very
+limited number of operations can be performed on it. Its reference
+count can be altered, the memory used by the instance struct can be
+accessed, but none of the member GObjects can be assumed to be valid.
+eg., it's definitely illegal to add new rows to the member GtkListBox.
+Hence a boolean flag is used to mark the destroyed state of the panel.
+
+This second part is a small improvement over the earlier hack.
+
+https://gitlab.gnome.org/GNOME/gnome-control-center/issues/208
+(cherry picked from commit 83558429b3f98a4bf4ada17b64f09f073a6b8c38)
+---
+ panels/online-accounts/cc-online-accounts-panel.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/panels/online-accounts/cc-online-accounts-panel.c b/panels/online-accounts/cc-online-accounts-panel.c
+index edd140e4b..1640c74c4 100644
+--- a/panels/online-accounts/cc-online-accounts-panel.c
++++ b/panels/online-accounts/cc-online-accounts-panel.c
+@@ -56,6 +56,7 @@ struct _CcGoaPanel
+ GtkWidget *stack;
+ GtkWidget *accounts_vbox;
+
++ gboolean destroyed;
+ guint remove_account_timeout_id;
+ };
+
+@@ -401,6 +402,8 @@ cc_goa_panel_dispose (GObject *object)
+ /* Must be destroyed in dispose, not finalize. */
+ g_clear_pointer (&panel->edit_account_dialog, gtk_widget_destroy);
+
++ panel->destroyed = TRUE;
++
+ G_OBJECT_CLASS (cc_goa_panel_parent_class)->dispose (object);
+ }
+
+@@ -480,7 +483,7 @@ cc_goa_panel_init (CcGoaPanel *panel)
+ panel);
+
+ fill_accounts_listbox (panel);
+- goa_provider_get_all (get_all_providers_cb, panel);
++ goa_provider_get_all (get_all_providers_cb, g_object_ref_sink (panel));
+
+ gtk_widget_show (GTK_WIDGET (panel));
+ }
+@@ -843,7 +846,7 @@ get_all_providers_cb (GObject *source,
+ GAsyncResult *res,
+ gpointer user_data)
+ {
+- CcGoaPanel *self = user_data;
++ g_autoptr (CcGoaPanel) self = user_data;
+ GList *providers;
+ GList *l;
+
+@@ -851,6 +854,9 @@ get_all_providers_cb (GObject *source,
+ if (!goa_provider_get_all_finish (&providers, res, NULL))
+ return;
+
++ if (self->destroyed)
++ return;
++
+ for (l = providers; l != NULL; l = l->next)
+ {
+ GoaProvider *provider;
+--
+2.17.0
+
diff --git a/gnome-base/gnome-control-center/files/3.26.2-without-wayland-fix.patch b/gnome-base/gnome-control-center/files/3.26.2-without-wayland-fix.patch
new file mode 100644
index 000000000000..d045790d6c7e
--- /dev/null
+++ b/gnome-base/gnome-control-center/files/3.26.2-without-wayland-fix.patch
@@ -0,0 +1,46 @@
+From 75dc553f10df3cf48227ec69b9465009eebf7b8b Mon Sep 17 00:00:00 2001
+From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
+Date: Wed, 17 Jan 2018 20:05:03 -0200
+Subject: [PATCH] common: Don't unconditionally define HAVE_WAYLAND
+
+This header unconditionally defines HAVE_WAYLAND when GTK
+is built with Wayland support. This breaks the build when
+building with Wayland disabled.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=785414
+(cherry picked from commit 62f07b2c6d8a28378e1f2c9f5d0c3241332ee8cf)
+[Added HAVE_WAYLAND config.h definition for autotools to fix runtime]
+Signed-off-by: Mart Raudsepp <leio@gentoo.org>
+---
+ configure.ac | 1 +
+ panels/common/gnome-settings-bus.h | 2 --
+ 2 files changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index f810bfb1f..24940a798 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -291,6 +291,7 @@ AS_IF([test "$enable_wayland" != "no"],
+ [AC_DEFINE(HAVE_UDEV, 1, [System has udev])])
+
+ PKG_CHECK_MODULES(WAYLAND, gdk-wayland-3.0)
++ AC_DEFINE(HAVE_WAYLAND, 1, [Compile with Wayland support])
+ ])
+ AM_CONDITIONAL(HAVE_WAYLAND, [test "x$enable_wayland" != "xno"])
+
+diff --git a/panels/common/gnome-settings-bus.h b/panels/common/gnome-settings-bus.h
+index ce58f5805..763a9cca7 100644
+--- a/panels/common/gnome-settings-bus.h
++++ b/panels/common/gnome-settings-bus.h
+@@ -5,8 +5,6 @@
+
+ #ifdef GDK_WINDOWING_WAYLAND
+
+-#define HAVE_WAYLAND 1
+-
+ static inline gboolean
+ gnome_settings_is_wayland (void)
+ {
+--
+2.17.0
+