diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2022-01-20 13:34:19 +0100 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2022-01-20 14:24:20 +0100 |
commit | e5d9cd231e551b2b117dbe5bd742c1bbd5a97701 (patch) | |
tree | ccf41089668cc9c08df40f4dbcbcee604cb246cb /kde-frameworks/kwindowsystem | |
parent | kde-frameworks/khtml: Drop 5.90.0 (r0) (diff) | |
download | gentoo-e5d9cd231e551b2b117dbe5bd742c1bbd5a97701.tar.gz gentoo-e5d9cd231e551b2b117dbe5bd742c1bbd5a97701.tar.bz2 gentoo-e5d9cd231e551b2b117dbe5bd742c1bbd5a97701.zip |
kde-frameworks/kwindowsystem: Fix swapping Alt with Win behavior
Upstream commit 6e3d645d444073097e93520f047bb2321673119a
KDE-bug: https://bugs.kde.org/show_bug.cgi?id=426684
Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'kde-frameworks/kwindowsystem')
-rw-r--r-- | kde-frameworks/kwindowsystem/files/kwindowsystem-5.90.0-avoid-XKeycodeToKeysym.patch | 50 | ||||
-rw-r--r-- | kde-frameworks/kwindowsystem/kwindowsystem-5.90.0-r1.ebuild | 46 |
2 files changed, 96 insertions, 0 deletions
diff --git a/kde-frameworks/kwindowsystem/files/kwindowsystem-5.90.0-avoid-XKeycodeToKeysym.patch b/kde-frameworks/kwindowsystem/files/kwindowsystem-5.90.0-avoid-XKeycodeToKeysym.patch new file mode 100644 index 000000000000..a9f47883e6e8 --- /dev/null +++ b/kde-frameworks/kwindowsystem/files/kwindowsystem-5.90.0-avoid-XKeycodeToKeysym.patch @@ -0,0 +1,50 @@ +From 6e3d645d444073097e93520f047bb2321673119a Mon Sep 17 00:00:00 2001 +From: Fabian Vogt <fabian@ritter-vogt.de> +Date: Sun, 2 Jan 2022 23:52:07 +0100 +Subject: [PATCH] Avoid XKeycodeToKeysym in KKeyServer::initializeMods + +Xlib functions which work with keyboard mappings have a (Display) internal +cache, which needs to be refreshed on mapping changes by calling +X(kb)RefreshKeyboardMapping on change notify events. + +After Qt switched to XCB, that is no longer happening, and it's also not +possible to get to the XEvent needed for triggering the refresh. Switch +over to using the XCB equivalent and just load the symbols on every invocation. + +BUG: 426684 +--- + src/platforms/xcb/kkeyserver.cpp | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/platforms/xcb/kkeyserver.cpp b/src/platforms/xcb/kkeyserver.cpp +index 306c63b..bc43dbd 100644 +--- a/src/platforms/xcb/kkeyserver.cpp ++++ b/src/platforms/xcb/kkeyserver.cpp +@@ -496,6 +496,7 @@ bool initializeMods() + } + + checkDisplay(); ++ xcb_key_symbols_t *symbols = xcb_key_symbols_alloc(QX11Info::connection()); + XModifierKeymap *xmk = XGetModifierMapping(QX11Info::display()); + + int min_keycode; +@@ -515,7 +516,7 @@ bool initializeMods() + // found fixes the problem. + for (int j = 0; j < xmk->max_keypermod; ++j) { + for (int k = 0; k < keysyms_per_keycode; ++k) { +- keySymX = XKeycodeToKeysym(QX11Info::display(), xmk->modifiermap[xmk->max_keypermod * i + j], k); ++ keySymX = xcb_key_symbols_get_keysym(symbols, xmk->modifiermap[xmk->max_keypermod * i + j], k); + + switch (keySymX) { + case XK_Alt_L: +@@ -628,6 +629,7 @@ bool initializeMods() + g_rgX11ModInfo[2].modX = g_alt_mask; + g_rgX11ModInfo[3].modX = g_meta_mask; + ++ xcb_key_symbols_free(symbols); + XFreeModifiermap(xmk); + g_bInitializedMods = true; + +-- +GitLab + diff --git a/kde-frameworks/kwindowsystem/kwindowsystem-5.90.0-r1.ebuild b/kde-frameworks/kwindowsystem/kwindowsystem-5.90.0-r1.ebuild new file mode 100644 index 000000000000..9b74f0ae66e9 --- /dev/null +++ b/kde-frameworks/kwindowsystem/kwindowsystem-5.90.0-r1.ebuild @@ -0,0 +1,46 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +QTMIN=5.15.2 +VIRTUALX_REQUIRED="test" +inherit ecm kde.org + +DESCRIPTION="Framework providing access to properties and features of the window manager" +LICENSE="|| ( LGPL-2.1 LGPL-3 ) MIT" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +IUSE="nls X" + +RESTRICT="test" + +RDEPEND=" + >=dev-qt/qtgui-${QTMIN}:5 + X? ( + >=dev-qt/qtx11extras-${QTMIN}:5 + x11-libs/libX11 + x11-libs/libXfixes + x11-libs/libxcb + x11-libs/xcb-util-keysyms + ) +" +DEPEND="${RDEPEND} + X? ( x11-base/xorg-proto ) + test? ( >=dev-qt/qtwidgets-${QTMIN}:5 ) +" +BDEPEND=" + nls? ( >=dev-qt/linguist-tools-${QTMIN}:5 ) +" + +DOCS=( docs/README.kstartupinfo ) + +PATCHES=( "${FILESDIR}/${P}-avoid-XKeycodeToKeysym.patch" ) # KDE-bug 426684 + +src_configure() { + local mycmakeargs=( + -DKWINDOWSYSTEM_NO_WIDGETS=ON + $(cmake_use_find_package X X11) + ) + + ecm_src_configure +} |