diff --git a/SOURCES/0001-main-Dump-stack-on-segfaults-by-default.patch b/SOURCES/0001-main-Dump-stack-on-segfaults-by-default.patch new file mode 100644 index 0000000..75b9b1a --- /dev/null +++ b/SOURCES/0001-main-Dump-stack-on-segfaults-by-default.patch @@ -0,0 +1,38 @@ +From ba3ce64fbbce20192a55f9d438d1032c0bac0557 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Thu, 29 Oct 2020 18:21:06 +0100 +Subject: [PATCH] main: Dump stack on segfaults by default + +--- + src/main.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/src/main.c b/src/main.c +index 245837783..788309de7 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -39,6 +39,7 @@ static int caught_signal = 0; + #define DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER 1 + #define DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER 4 + ++#define DEFAULT_SHELL_DEBUG SHELL_DEBUG_BACKTRACE_SEGFAULTS + enum { + SHELL_DEBUG_BACKTRACE_WARNINGS = 1, + SHELL_DEBUG_BACKTRACE_SEGFAULTS = 2, +@@ -268,8 +269,11 @@ shell_init_debug (const char *debug_env) + { "backtrace-segfaults", SHELL_DEBUG_BACKTRACE_SEGFAULTS }, + }; + +- _shell_debug = g_parse_debug_string (debug_env, keys, +- G_N_ELEMENTS (keys)); ++ if (debug_env) ++ _shell_debug = g_parse_debug_string (debug_env, keys, ++ G_N_ELEMENTS (keys)); ++ else ++ _shell_debug = DEFAULT_SHELL_DEBUG; + } + + static void +-- +2.29.2 + diff --git a/SOURCES/osk-fixes.patch b/SOURCES/osk-fixes.patch new file mode 100644 index 0000000..6c5648d --- /dev/null +++ b/SOURCES/osk-fixes.patch @@ -0,0 +1,117 @@ +From 96ccb155bbe6ce570832a9f3d27a0a08698127ea Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= +Date: Sat, 28 Mar 2020 14:15:09 +0100 +Subject: [PATCH 1/3] keyboard: Don't include keyboard devices when updating + lastDevice + +We're dealing with attached keyboards now using the touch_mode property +of ClutterSeat: If a device has a keyboard attached, the touch-mode is +FALSE and we won't automatically show the OSK on touches, also the +touch-mode gets set to FALSE when an external keyboard is being plugged +in, so that also hides the OSK automatically. + +With that, we can now ignore keyboard devices when updating the last +used device and no longer have to special-case our own virtual devices. + +Because there was no special-case for the virtual device we use on +Wayland now, this fixes a bug where the keyboard disappeared after +touching keys like Enter or Backspace. + +Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2287 + +https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1142 +--- + js/ui/keyboard.js | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js +index c4ac72d..94b5325 100644 +--- a/js/ui/keyboard.js ++++ b/js/ui/keyboard.js +@@ -1075,6 +1075,9 @@ var Keyboard = class Keyboard { + let device = manager.get_device(deviceId); + + if (device.get_device_name().indexOf('XTEST') < 0) { ++ if (device.device_type == Clutter.InputDeviceType.KEYBOARD_DEVICE) ++ return; ++ + this._lastDeviceId = deviceId; + this._syncEnabled(); + } +-- +2.26.2 + + +From 3106746ae424287d8644643a2ef46d565e4cd7ed Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= +Date: Sat, 28 Mar 2020 14:34:24 +0100 +Subject: [PATCH 2/3] layout: Use translation_y of 0 to hide keyboard + +Since we show the keyboard using a translation_y of -keyboardHeight, the +keyboard will be moved down far enough to be out of sight by setting +translation_y to 0. + +https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1142 +--- + js/ui/layout.js | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/js/ui/layout.js b/js/ui/layout.js +index beb4c0a..4382f6e 100644 +--- a/js/ui/layout.js ++++ b/js/ui/layout.js +@@ -719,7 +719,7 @@ var LayoutManager = GObject.registerClass({ + showKeyboard() { + this.keyboardBox.show(); + Tweener.addTween(this.keyboardBox, +- { anchor_y: this.keyboardBox.height, ++ { translation_y: -this.keyboardBox.height, + opacity: 255, + time: KEYBOARD_ANIMATION_TIME, + transition: 'easeOutQuad', +@@ -735,7 +735,7 @@ var LayoutManager = GObject.registerClass({ + this._updateRegions(); + + this._keyboardHeightNotifyId = this.keyboardBox.connect('notify::height', () => { +- this.keyboardBox.anchor_y = this.keyboardBox.height; ++ this.keyboardBox.translation_y = -this.keyboardBox.height; + }); + } + +@@ -745,7 +745,7 @@ var LayoutManager = GObject.registerClass({ + this._keyboardHeightNotifyId = 0; + } + Tweener.addTween(this.keyboardBox, +- { anchor_y: 0, ++ { translation_y: 0, + opacity: 0, + time: immediate ? 0 : KEYBOARD_ANIMATION_TIME, + transition: 'easeInQuad', +-- +2.26.2 + + +From 642822308a72be6a47f4eb285f32539499f0d3e4 Mon Sep 17 00:00:00 2001 +From: rpm-build +Date: Wed, 21 Oct 2020 20:29:34 +0200 +Subject: [PATCH 3/3] layout: queue redraw after hiding keyboard + +--- + js/ui/layout.js | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/js/ui/layout.js b/js/ui/layout.js +index 4382f6e..1824313 100644 +--- a/js/ui/layout.js ++++ b/js/ui/layout.js +@@ -759,6 +759,7 @@ var LayoutManager = GObject.registerClass({ + _hideKeyboardComplete() { + this.keyboardBox.hide(); + this._updateRegions(); ++ global.stage.queue_redraw(); + } + + // setDummyCursorGeometry: +-- +2.26.2 + diff --git a/SPECS/gnome-shell.spec b/SPECS/gnome-shell.spec index 12893f7..931adea 100644 --- a/SPECS/gnome-shell.spec +++ b/SPECS/gnome-shell.spec @@ -1,6 +1,6 @@ Name: gnome-shell Version: 3.32.2 -Release: 25%{?dist} +Release: 27%{?dist} Summary: Window management and application launching for GNOME Group: User Interface/Desktops @@ -35,6 +35,7 @@ Patch33: 0001-panel-add-an-icon-to-the-ActivitiesButton.patch Patch34: 0001-app-Fall-back-to-window-title-instead-of-WM_CLASS.patch Patch35: 0001-windowMenu-Bring-back-workspaces-submenu-for-static-.patch Patch36: 0001-shell-app-Handle-workspace-from-startup-notification.patch +Patch37: 0001-main-Dump-stack-on-segfaults-by-default.patch Patch38: 0001-appDisplay-Show-full-app-name-on-hover.patch Patch39: horizontal-workspace-support.patch Patch40: 0001-animation-fix-unintentional-loop-while-polkit-dialog.patch @@ -67,6 +68,9 @@ Patch65: 0006-js-Always-use-AppSystem-to-lookup-apps.patch # Stop screen recording on monitor changes (#1705392) Patch70: 0001-screencast-Stop-recording-when-screen-size-or-resour.patch +# Backport OSK fixes (#1871041) +Patch75: osk-fixes.patch + # suspend/resume fix on nvidia (#1663440) Patch10001: 0001-background-refresh-after-suspend-on-wayland.patch Patch10002: 0002-background-rebuild-background-not-just-animation-on-.patch @@ -246,6 +250,14 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de %{_mandir}/man1/%{name}.1.gz %changelog +* Thu Jan 14 2021 Florian Müllner - 3.32.2-27 +- Default to printing JS backtrace on segfaults + Resolves: #1883868 + +* Wed Jan 13 2021 Carlos Garnacho - 3.32.2-26 +- Backport OSK fixes + Resolves: #1871041 + * Tue Jan 12 2021 Jonas Ådahl - 3.32.2-25 - Stop screen recording on monitor changes Resolves: #1705392