diff options
author | dudemanguy | 2020-10-06 18:39:57 -0500 |
---|---|---|
committer | dudemanguy | 2020-10-06 18:39:57 -0500 |
commit | 2d476ea19f3e98c5f4121e31ad916d5aa27be9e6 (patch) | |
tree | c2f1b9dd0095e99c28cfe715e11e0ee6b73e7247 | |
parent | 2397d3a9e19f87822b0117c29b1336f82cd7b8c1 (diff) | |
download | aur-2d476ea19f3e98c5f4121e31ad916d5aa27be9e6.tar.gz |
3.24.23-4
-rw-r--r-- | .SRCINFO | 6 | ||||
-rw-r--r-- | 0001-gtkplacessidebar-Disconnect-and-unref-cloud_manager-.patch | 64 | ||||
-rw-r--r-- | PKGBUILD | 11 |
3 files changed, 78 insertions, 3 deletions
@@ -1,7 +1,7 @@ pkgbase = gtk3-patched-filechooser-icon-view pkgdesc = GTK3 patched with dudemanguy's fork of wfr's filechooser-icon-view patch. pkgver = 3.24.23 - pkgrel = 1.1 + pkgrel = 4 epoch = 1 url = https://github.com/Dudemanguy/gtk install = gtk3.install @@ -42,6 +42,8 @@ pkgbase = gtk3-patched-filechooser-icon-view depends = libcanberra depends = fribidi depends = iso-codes + depends = tracker3 + depends = libcloudproviders depends = gtk-update-icon-cache optdepends = glib2-patched-thumbnailer: Thumbnail generation in upload dialog provides = gtk3=3.24.23 @@ -53,10 +55,12 @@ pkgbase = gtk3-patched-filechooser-icon-view conflicts = gtk3-print-backends replaces = gtk3-print-backends<=3.22.26-1 source = git+https://gitlab.gnome.org/GNOME/gtk.git#commit=016e8c55ab924c9ef4d32c8cb06253b1dc1be60d + source = 0001-gtkplacessidebar-Disconnect-and-unref-cloud_manager-.patch source = settings.ini source = gtk-query-immodules-3.0.hook source = gtk3-filechooser-icon-view.patch sha256sums = SKIP + sha256sums = d6f6bf347482553bc20a1640c1619f674520b853a5b2ade9fd56bb77bfdfe170 sha256sums = 01fc1d81dc82c4a052ac6e25bf9a04e7647267cc3017bc91f9ce3e63e5eb9202 sha256sums = a0319b6795410f06d38de1e8695a9bf9636ff2169f40701671580e60a108e229 sha256sums = 37d8d594ee3ef4528b8066992999c39746f3506078083a7d21c19bbceae87b2b diff --git a/0001-gtkplacessidebar-Disconnect-and-unref-cloud_manager-.patch b/0001-gtkplacessidebar-Disconnect-and-unref-cloud_manager-.patch new file mode 100644 index 000000000000..9e3d21843c51 --- /dev/null +++ b/0001-gtkplacessidebar-Disconnect-and-unref-cloud_manager-.patch @@ -0,0 +1,64 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> +Date: Tue, 6 Oct 2020 21:14:45 +0000 +Subject: [PATCH] gtkplacessidebar: Disconnect and unref cloud_manager in + dispose + +The manager's providers-changed signal can fire after the sidebar has +been freed. Make sure we disconnect the sidebar from the manager. + +https://bugs.archlinux.org/task/57984 +https://bugs.archlinux.org/task/68123 +--- + gtk/gtkplacessidebar.c | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) + +diff --git a/gtk/gtkplacessidebar.c b/gtk/gtkplacessidebar.c +index 87c08a5389..118739fdd2 100644 +--- a/gtk/gtkplacessidebar.c ++++ b/gtk/gtkplacessidebar.c +@@ -4411,32 +4411,32 @@ gtk_places_sidebar_dispose (GObject *object) + sidebar->shortcuts = NULL; + + #ifdef HAVE_CLOUDPROVIDERS +- for (l = cloud_providers_collector_get_providers (sidebar->cloud_manager); +- l != NULL; l = l->next) +- { +- g_signal_handlers_disconnect_by_data (l->data, sidebar); +- } + for (l = sidebar->unready_accounts; l != NULL; l = l->next) + { + g_signal_handlers_disconnect_by_data (l->data, sidebar); + } + g_list_free_full (sidebar->unready_accounts, g_object_unref); + sidebar->unready_accounts = NULL; ++ ++ if (sidebar->cloud_manager) ++ { ++ g_signal_handlers_disconnect_by_data (sidebar->cloud_manager, sidebar); ++ for (l = cloud_providers_collector_get_providers (sidebar->cloud_manager); ++ l != NULL; l = l->next) ++ { ++ g_signal_handlers_disconnect_by_data (l->data, sidebar); ++ } ++ g_object_unref (sidebar->cloud_manager); ++ sidebar->cloud_manager = NULL; ++ } + #endif + + G_OBJECT_CLASS (gtk_places_sidebar_parent_class)->dispose (object); + } + + static void + gtk_places_sidebar_finalize (GObject *object) + { +-#ifdef HAVE_CLOUDPROVIDERS +- GtkPlacesSidebar *sidebar; +- +- sidebar = GTK_PLACES_SIDEBAR (object); +- g_clear_object (&sidebar->cloud_manager); +-#endif +- + G_OBJECT_CLASS (gtk_places_sidebar_parent_class)->finalize (object); + } + @@ -5,7 +5,7 @@ pkgname=gtk3-patched-filechooser-icon-view pkgver=3.24.23 -pkgrel=1.1 +pkgrel=4 epoch=1 pkgdesc="GTK3 patched with dudemanguy's fork of wfr's filechooser-icon-view patch." arch=(x86_64) @@ -16,7 +16,8 @@ replaces=('gtk3-print-backends<=3.22.26-1') depends=(atk cairo libxcursor libxinerama libxrandr libxi libepoxy gdk-pixbuf2 dconf libxcomposite libxdamage pango shared-mime-info at-spi2-atk wayland libxkbcommon adwaita-icon-theme json-glib librsvg wayland-protocols desktop-file-utils mesa - cantarell-fonts colord rest libcups libcanberra fribidi iso-codes gtk-update-icon-cache) + cantarell-fonts colord rest libcups libcanberra fribidi iso-codes tracker3 + libcloudproviders gtk-update-icon-cache) optdepends=('glib2-patched-thumbnailer: Thumbnail generation in upload dialog') makedepends=(gobject-introspection gtk-doc git glib2-docs sassc meson) @@ -24,11 +25,13 @@ license=(LGPL) install=gtk3.install _commit=016e8c55ab924c9ef4d32c8cb06253b1dc1be60d # tags/3.24.23^0 source=("git+https://gitlab.gnome.org/GNOME/gtk.git#commit=$_commit" + 0001-gtkplacessidebar-Disconnect-and-unref-cloud_manager-.patch settings.ini gtk-query-immodules-3.0.hook gtk3-filechooser-icon-view.patch) sha256sums=('SKIP' + 'd6f6bf347482553bc20a1640c1619f674520b853a5b2ade9fd56bb77bfdfe170' '01fc1d81dc82c4a052ac6e25bf9a04e7647267cc3017bc91f9ce3e63e5eb9202' 'a0319b6795410f06d38de1e8695a9bf9636ff2169f40701671580e60a108e229' '37d8d594ee3ef4528b8066992999c39746f3506078083a7d21c19bbceae87b2b') @@ -40,6 +43,9 @@ pkgver() { prepare() { cd gtk + # https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/2669 + git apply -3 ../0001-gtkplacessidebar-Disconnect-and-unref-cloud_manager-.patch + # apply icon-view patch git apply -3 ../gtk3-filechooser-icon-view.patch } @@ -48,6 +54,7 @@ build() { CFLAGS+=" -DG_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS" arch-meson gtk build \ -D broadway_backend=true \ + -D cloudproviders=true \ -D colord=yes \ -D gtk_doc=true \ -D man=true |