Keyboard shortcuts doesn't work for russian keyboard layout (#968367, QTBUG-32908)

This commit is contained in:
Rex Dieter 2013-09-12 10:05:37 -05:00
parent 9331d5d829
commit db52875339
2 changed files with 43 additions and 1 deletions

View File

@ -0,0 +1,34 @@
From f45cdeda88796830b3fe71aff7ceb1919d00400d Mon Sep 17 00:00:00 2001
From: Aurelien Lourot <aurelien.lourot@gmail.com>
Date: Thu, 10 Jan 2013 22:28:37 +0100
Subject: [PATCH] QTBUG-15319: fix shortcuts with secondary Xkb layout.
Change-Id: Iadb89137ec017b9dcd4d1588fd582ea46a9d7cc1
Reviewed-by: Aurelien <aurelien.lourot@gmail.com>
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
---
src/gui/kernel/qkeymapper_x11.cpp | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/gui/kernel/qkeymapper_x11.cpp b/src/gui/kernel/qkeymapper_x11.cpp
index 7daa41d..005ff3f 100644
--- a/src/gui/kernel/qkeymapper_x11.cpp
+++ b/src/gui/kernel/qkeymapper_x11.cpp
@@ -282,9 +282,12 @@ QList<int> QKeyMapperPrivate::possibleKeysXKB(QKeyEvent *event)
// first, translate key only using lock modifiers (there are no Qt equivalents for these, so we must
// always use them when determining the baseKeySym)
+ // Note: the Xkb group to be used for the conversion keycode->keysym has to be given to
+ // XkbLookupKeySym(). This information is contained in the bits 8 to 15 of xmodifiers.
+ // See https://bugreports.qt-project.org/browse/QTBUG-15319 .
KeySym baseKeySym;
uint consumedModifiers;
- if (!XkbLookupKeySym(X11->display, xkeycode, (xmodifiers & (LockMask | qt_num_lock_mask)),
+ if (!XkbLookupKeySym(X11->display, xkeycode, (xmodifiers & (0xff00 | LockMask | qt_num_lock_mask)),
&consumedModifiers, &baseKeySym))
return QList<int>();
--
1.8.3.1

10
qt.spec
View File

@ -29,7 +29,7 @@ Summary: Qt toolkit
Name: qt
Epoch: 1
Version: 4.8.5
Release: 7%{?dist}
Release: 8%{?dist}
# See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details
License: (LGPLv2 with exceptions or GPLv3 with exceptions) and ASL 2.0 and BSD and FTL and MIT
@ -150,6 +150,10 @@ Patch101: qt-everywhere-opensource-src-4.8.5-QTBUG-30076.patch
# http://bugzilla.redhat.com/702493
# https://bugreports.qt-project.org/browse/QTBUG-5545
Patch102: qt-everywhere-opensource-src-4.8.5-qgtkstyle_disable_gtk_theme_check.patch
# revert fix for QTBUG-15319, fixes regression QTBUG-32908
# http://bugzilla.redhat.com/968367
# https://bugreports.qt-project.org/browse/QTBUG-32908
Patch103: QTBUG-15319-fix-shortcuts-with-secondary-Xkb-layout.patch
# workaround for MOC issues with Boost headers (#756395)
# https://bugreports.qt-project.org/browse/QTBUG-22829
Patch113: qt-everywhere-opensource-src-4.8.5-QTBUG-22829.patch
@ -518,6 +522,7 @@ rm -fv mkspecs/linux-g++*/qmake.conf.multilib-optflags
%patch100 -p1 -b .QTgaHandler
%patch101 -p1 -R -b .QTBUG-30076
%patch102 -p1 -b .qgtkstyle_disable_gtk_theme_check
%patch103 -p1 -R -b .QTBUG-15319
%patch113 -p1 -b .QTBUG-22829
#patch155 -p1 -b .QTBUG-27809
@ -1215,6 +1220,9 @@ fi
%changelog
* Thu Sep 12 2013 Rex Dieter <rdieter@fedoraproject.org> 4.8.5-8
- Keyboard shortcuts doesn't work for russian keyboard layout (#968367, QTBUG-32908)
* Mon Aug 26 2013 Jon Ciesla <limburgher@gmail.com> - 4.8.5-7
- libmng rebuild.