Update to 3.24.13

This commit is contained in:
Kalev Lember 2019-11-27 22:06:35 +01:00
parent 3189369c9d
commit e28e61ba86
5 changed files with 7 additions and 200 deletions

1
.gitignore vendored
View File

@ -183,3 +183,4 @@ gtk+-2.90.5.tar.bz2
/gtk+-3.24.10.tar.xz
/gtk+-3.24.11.tar.xz
/gtk+-3.24.12.tar.xz
/gtk+-3.24.13.tar.xz

View File

@ -1,112 +0,0 @@
From 299902b008c3b453596679f249eec28bfc6c026a Mon Sep 17 00:00:00 2001
From: Carlos Garnacho <carlosg@gnome.org>
Date: Mon, 21 Oct 2019 20:19:06 +0200
Subject: [PATCH 1/2] gdk: Shuffle the situations where a selection is unset
This should only be explicitly unset (face to the windowing) on
gdk_selection_owner_set() with a NULL window. Other circumstances
(eg. selection being taken over by another client) should just
trigger the SelectionClear event in GDK internally.
Related: https://gitlab.gnome.org/GNOME/mutter/issues/878
---
gdk/wayland/gdkselection-wayland.c | 19 +++++++++----------
1 file changed, 9 insertions(+), 10 deletions(-)
diff --git a/gdk/wayland/gdkselection-wayland.c b/gdk/wayland/gdkselection-wayland.c
index cb799e53e0..9494489d69 100644
--- a/gdk/wayland/gdkselection-wayland.c
+++ b/gdk/wayland/gdkselection-wayland.c
@@ -1140,10 +1140,6 @@ gdk_wayland_selection_unset_data_source (GdkDisplay *display,
if (selection == atoms[ATOM_CLIPBOARD])
{
- GdkSeat *seat = gdk_display_get_default_seat (display);
-
- gdk_wayland_seat_set_selection (seat, NULL);
-
if (wayland_selection->clipboard_source)
{
wl_data_source_destroy (wayland_selection->clipboard_source);
@@ -1152,10 +1148,6 @@ gdk_wayland_selection_unset_data_source (GdkDisplay *display,
}
else if (selection == atoms[ATOM_PRIMARY])
{
- GdkSeat *seat = gdk_display_get_default_seat (display);
-
- gdk_wayland_seat_set_primary (seat, NULL);
-
if (wayland_selection->primary_source)
{
gtk_primary_selection_source_destroy (wayland_selection->primary_source);
@@ -1192,19 +1184,26 @@ _gdk_wayland_display_set_selection_owner (GdkDisplay *display,
gboolean send_event)
{
GdkWaylandSelection *wayland_selection = gdk_wayland_display_get_selection (display);
+ GdkSeat *seat = gdk_display_get_default_seat (display);
if (selection == atoms[ATOM_CLIPBOARD])
{
wayland_selection->clipboard_owner = owner;
if (send_event && !owner)
- gdk_wayland_selection_unset_data_source (display, selection);
+ {
+ gdk_wayland_seat_set_selection (seat, NULL);
+ gdk_wayland_selection_unset_data_source (display, selection);
+ }
return TRUE;
}
else if (selection == atoms[ATOM_PRIMARY])
{
wayland_selection->primary_owner = owner;
if (send_event && !owner)
- gdk_wayland_selection_unset_data_source (display, selection);
+ {
+ gdk_wayland_seat_set_primary (seat, NULL);
+ gdk_wayland_selection_unset_data_source (display, selection);
+ }
return TRUE;
}
else if (selection == atoms[ATOM_DND])
--
2.22.0
From 7a891eeb6def29f6562a3833c272b0cb2a67ae23 Mon Sep 17 00:00:00 2001
From: Carlos Garnacho <carlosg@gnome.org>
Date: Mon, 21 Oct 2019 20:27:12 +0200
Subject: [PATCH 2/2] gdk: Do not call gdk_selection_owner_set() internally to
the backend
This should just be called by the upper layers (and result in
wl_data_device.set_selection, etc). We should not trigger this within
the backend otherwise.
Related: https://gitlab.gnome.org/GNOME/mutter/issues/878
---
gdk/wayland/gdkselection-wayland.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/gdk/wayland/gdkselection-wayland.c b/gdk/wayland/gdkselection-wayland.c
index 9494489d69..e14f50de8d 100644
--- a/gdk/wayland/gdkselection-wayland.c
+++ b/gdk/wayland/gdkselection-wayland.c
@@ -937,7 +937,6 @@ data_source_cancelled (void *data,
gdk_drag_context_cancel (context, GDK_DRAG_CANCEL_ERROR);
emit_selection_clear (display, atom);
- gdk_selection_owner_set (NULL, atom, GDK_CURRENT_TIME, TRUE);
gdk_wayland_selection_unset_data_source (display, atom);
}
@@ -1048,7 +1047,6 @@ primary_source_cancelled (void *data,
atom = atoms[ATOM_PRIMARY];
emit_selection_clear (display, atom);
- gdk_selection_owner_set (NULL, atom, GDK_CURRENT_TIME, TRUE);
gdk_wayland_selection_unset_data_source (display, atom);
}
--
2.22.0

View File

@ -1,76 +0,0 @@
From ba0a0ce0a0e85d57b3ec2010189b4c8c484c2c9f Mon Sep 17 00:00:00 2001
From: Carlos Garnacho <carlosg@gnome.org>
Date: Tue, 22 Oct 2019 18:36:44 +0200
Subject: [PATCH 1/2] Revert "gdk: Do not call gdk_selection_owner_set()
internally to the backend"
This reverts commit 7a891eeb6def29f6562a3833c272b0cb2a67ae23.
---
gdk/wayland/gdkselection-wayland.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/gdk/wayland/gdkselection-wayland.c b/gdk/wayland/gdkselection-wayland.c
index e14f50de8d..9494489d69 100644
--- a/gdk/wayland/gdkselection-wayland.c
+++ b/gdk/wayland/gdkselection-wayland.c
@@ -937,6 +937,7 @@ data_source_cancelled (void *data,
gdk_drag_context_cancel (context, GDK_DRAG_CANCEL_ERROR);
emit_selection_clear (display, atom);
+ gdk_selection_owner_set (NULL, atom, GDK_CURRENT_TIME, TRUE);
gdk_wayland_selection_unset_data_source (display, atom);
}
@@ -1047,6 +1048,7 @@ primary_source_cancelled (void *data,
atom = atoms[ATOM_PRIMARY];
emit_selection_clear (display, atom);
+ gdk_selection_owner_set (NULL, atom, GDK_CURRENT_TIME, TRUE);
gdk_wayland_selection_unset_data_source (display, atom);
}
--
2.22.0
From ff41436b594e04e106c0cd3859080ac80e6e6722 Mon Sep 17 00:00:00 2001
From: Carlos Garnacho <carlosg@gnome.org>
Date: Tue, 22 Oct 2019 18:39:30 +0200
Subject: [PATCH 2/2] gdk: Do not change the windowing selection when
cancelling source
We are interested in changing the owner window, so the upper bits know
that it is not this client who owns the selection. We are still not
interested in unsetting the selection desktop-wide though, so only avoid
emitting the relevant events then.
The same reasonings than in commit 7a891eeb6def apply otherwise.
---
gdk/wayland/gdkselection-wayland.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gdk/wayland/gdkselection-wayland.c b/gdk/wayland/gdkselection-wayland.c
index 9494489d69..a1925edd35 100644
--- a/gdk/wayland/gdkselection-wayland.c
+++ b/gdk/wayland/gdkselection-wayland.c
@@ -937,7 +937,7 @@ data_source_cancelled (void *data,
gdk_drag_context_cancel (context, GDK_DRAG_CANCEL_ERROR);
emit_selection_clear (display, atom);
- gdk_selection_owner_set (NULL, atom, GDK_CURRENT_TIME, TRUE);
+ gdk_selection_owner_set (NULL, atom, GDK_CURRENT_TIME, FALSE);
gdk_wayland_selection_unset_data_source (display, atom);
}
@@ -1048,7 +1048,7 @@ primary_source_cancelled (void *data,
atom = atoms[ATOM_PRIMARY];
emit_selection_clear (display, atom);
- gdk_selection_owner_set (NULL, atom, GDK_CURRENT_TIME, TRUE);
+ gdk_selection_owner_set (NULL, atom, GDK_CURRENT_TIME, FALSE);
gdk_wayland_selection_unset_data_source (display, atom);
}
--
2.22.0

View File

@ -24,22 +24,13 @@
%global __provides_exclude_from ^%{_libdir}/gtk-3.0
Name: gtk3
Version: 3.24.12
Release: 3%{?dist}
Version: 3.24.13
Release: 1%{?dist}
Summary: GTK+ graphical user interface library
License: LGPLv2+
URL: http://www.gtk.org
Source0: http://download.gnome.org/sources/gtk+/3.24/gtk+-%{version}.tar.xz
# https://gitlab.gnome.org/GNOME/gtk/merge_requests/1142
# Try to prevent copy/cut not working properly:
# https://gitlab.gnome.org/GNOME/mutter/issues/878
# https://bugzilla.redhat.com/show_bug.cgi?id=1763875
Patch0: 1142.patch
# https://gitlab.gnome.org/GNOME/gtk/merge_requests/1146
# Fixes a new bug that the previous patch (1142) introduced
# https://gitlab.gnome.org/GNOME/mutter/issues/878#note_630326
Patch1: 1146.patch
BuildRequires: pkgconfig(atk) >= %{atk_version}
BuildRequires: pkgconfig(atk-bridge-2.0)
@ -334,6 +325,9 @@ gtk-query-immodules-3.0-%{__isa_bits} --update-cache &>/dev/null || :
%{_datadir}/installed-tests/
%changelog
* Wed Nov 27 2019 Kalev Lember <klember@redhat.com> - 3.24.13-1
- Update to 3.24.13
* Tue Oct 22 2019 Adam Williamson <awilliam@redhat.com> - 3.24.12-3
- Backport PR #1146 to fix a bug that #1142 introduced...

View File

@ -1 +1 @@
SHA512 (gtk+-3.24.12.tar.xz) = 97554657d83db71ff8b3ea5f650ad38b1ffcc3e8d620be876b5ca435f693e229dffc7341a84bde71bdae13293f2c1d3b2ab1b80a02791132c8a7693cdc21f612
SHA512 (gtk+-3.24.13.tar.xz) = 9129d4574cca258b4a517d8d65dad246a746fc3dc574b78e098db9aa9743956ce227efbf963f63e1e0f1a1a09810716150526b2bfe8015a5960bad38b0c88406