Accepting request 1093545 from GNOME:Next
Add 3a931f61.patch to fix crash when closing tabs right after clicking OBS-URL: https://build.opensuse.org/request/show/1093545 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/nautilus?expand=0&rev=382
This commit is contained in:
parent
f702319721
commit
4d2bd1c33f
68
3a931f61.patch
Normal file
68
3a931f61.patch
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
From 3a931f617674193dba33448143866aa0735cbd32 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Corey Berla <corey@berla.me>
|
||||||
|
Date: Sun, 30 Apr 2023 07:56:24 -0700
|
||||||
|
Subject: [PATCH] view-cell: Make view property a weak pointer
|
||||||
|
|
||||||
|
When the gtk list view is in the process of being destroyed, some of the
|
||||||
|
cells might still exist with an invalid reference to the nautilus view.
|
||||||
|
We are having an problem where the double click idle timeout from the
|
||||||
|
gesture click on the nautilus-view-cell times out when the view-cell
|
||||||
|
hasn't be freed but the nautilus view has. A good way to test this is
|
||||||
|
by clicking an item immediately followed by ctrl+w to close the tab
|
||||||
|
(freeing the view).
|
||||||
|
|
||||||
|
I played around with trying to get the gtk list view to free earlier
|
||||||
|
in the process (i.e. before the nautilus list base), but there were
|
||||||
|
still instances where the cell still existed by the time the nautilus
|
||||||
|
view was freed.
|
||||||
|
|
||||||
|
To be safe, make the unowned nautilus view a weak pointer of the
|
||||||
|
nautilus view cell so we can safely check for NULL values.
|
||||||
|
|
||||||
|
Fixes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/2859
|
||||||
|
---
|
||||||
|
src/nautilus-list-base.c | 6 ++++++
|
||||||
|
src/nautilus-view-cell.c | 3 ++-
|
||||||
|
2 files changed, 8 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/nautilus-list-base.c b/src/nautilus-list-base.c
|
||||||
|
index 22440bacd0..4aef5b7004 100644
|
||||||
|
--- a/src/nautilus-list-base.c
|
||||||
|
+++ b/src/nautilus-list-base.c
|
||||||
|
@@ -432,6 +432,12 @@ on_item_click_stopped (GtkGestureClick *gesture,
|
||||||
|
g_autoptr (NautilusListBase) self = nautilus_view_cell_get_view (cell);
|
||||||
|
NautilusListBasePrivate *priv = nautilus_list_base_get_instance_private (self);
|
||||||
|
|
||||||
|
+ if (self == NULL)
|
||||||
|
+ {
|
||||||
|
+ /* The view may already be gone before the cell finalized. */
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
rubberband_set_state (self, TRUE);
|
||||||
|
priv->activate_on_release = FALSE;
|
||||||
|
priv->deny_background_click = FALSE;
|
||||||
|
diff --git a/src/nautilus-view-cell.c b/src/nautilus-view-cell.c
|
||||||
|
index 6f28fd8ff7..a16f365672 100644
|
||||||
|
--- a/src/nautilus-view-cell.c
|
||||||
|
+++ b/src/nautilus-view-cell.c
|
||||||
|
@@ -86,7 +86,7 @@ nautilus_view_cell_set_property (GObject *object,
|
||||||
|
{
|
||||||
|
case PROP_VIEW:
|
||||||
|
{
|
||||||
|
- priv->view = g_value_get_object (value);
|
||||||
|
+ g_set_weak_pointer (&priv->view, g_value_get_object (value));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
@@ -116,6 +116,7 @@ nautilus_view_cell_finalize (GObject *object)
|
||||||
|
NautilusViewCellPrivate *priv = nautilus_view_cell_get_instance_private (self);
|
||||||
|
|
||||||
|
g_clear_object (&priv->item);
|
||||||
|
+ g_clear_weak_pointer (&priv->view);
|
||||||
|
|
||||||
|
G_OBJECT_CLASS (nautilus_view_cell_parent_class)->finalize (object);
|
||||||
|
}
|
||||||
|
--
|
||||||
|
GitLab
|
||||||
|
|
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Jun 10 07:00:27 UTC 2023 - Luciano Santos <luc14n0@opensuse.org>
|
||||||
|
|
||||||
|
- Add 3a931f61.patch patch to fix crash when closing tabs right
|
||||||
|
after clicking.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Sun May 28 09:16:33 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>
|
Sun May 28 09:16:33 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||||
|
|
||||||
|
@ -27,6 +27,9 @@ Source0: https://download.gnome.org/sources/nautilus/44/%{name}-%{version
|
|||||||
Source1: set_trusted.desktop
|
Source1: set_trusted.desktop
|
||||||
Source2: set_trusted.sh
|
Source2: set_trusted.sh
|
||||||
|
|
||||||
|
# PATCH-FIX-UPSTREAM fix-crash-when-closing-tabs.patch -- based on commit 3a931f61
|
||||||
|
Patch1: https://gitlab.gnome.org/GNOME/nautilus/-/commit/3a931f61.patch
|
||||||
|
|
||||||
# needed for directory ownership
|
# needed for directory ownership
|
||||||
BuildRequires: dbus-1
|
BuildRequires: dbus-1
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
|
Loading…
x
Reference in New Issue
Block a user