[SCM] kglobalaccel packaging branch, master, updated. debian/5.37.0-2-87-ge66c79b
Maximiliano Curia
maxy at moszumanska.debian.org
Tue Jan 2 18:41:29 UTC 2018
Gitweb-URL: http://git.debian.org/?p=pkg-kde/frameworks/kglobalaccel.git;a=commitdiff;h=5bc3703
The following commit has been merged in the master branch:
commit 5bc370302a17b3fbd1048aca3c050485c191dcf7
Author: Jonathan Riddell <jr at jriddell.org>
Date: Wed Sep 13 18:07:15 2017 +0100
revert change in 5.38 which causes breakage
---
debian/patches/revert-5.38.diff | 84 +++++++++++++++++++++++++++++++++++++++++
debian/patches/series | 1 +
2 files changed, 85 insertions(+)
diff --git a/debian/patches/revert-5.38.diff b/debian/patches/revert-5.38.diff
new file mode 100644
index 0000000..109515a
--- /dev/null
+++ b/debian/patches/revert-5.38.diff
@@ -0,0 +1,84 @@
+commit 2c20ddff034e4958bf0536ca91ae9e444955305d
+Author: David Faure <faure at kde.org>
+Date: Fri Jun 16 09:33:01 2017 +0200
+
+ KGlobalAccel: port to KKeyServer's new method symXModXToKeyQt, to fix numpad keys
+
+ BUG: 183458
+
+ Test Plan:
+ the following global shortcuts were successfully tested:
+ Ctrl+1, Ctrl+Num+1, Ctrl+Num+/, Ctrl+F1, Ctrl+& (implicit shift)
+
+ Differential Revision: https://phabricator.kde.org/D6234
+
+diff --git a/src/runtime/plugins/xcb/kglobalaccel_x11.cpp b/src/runtime/plugins/xcb/kglobalaccel_x11.cpp
+index 9b37c7b..d76f1d5 100644
+--- a/src/runtime/plugins/xcb/kglobalaccel_x11.cpp
++++ b/src/runtime/plugins/xcb/kglobalaccel_x11.cpp
+@@ -122,6 +122,7 @@ bool KGlobalAccelImpl::grabKey( int keyQt, bool grab )
+ // can remove shift for some keys. (all the %&* and such)
+ if( !(keyQt & Qt::SHIFT) &&
+ !KKeyServer::isShiftAsModifierAllowed( keyQt ) &&
++ !(keyQt & Qt::KeypadModifier) &&
+ keySymX != xcb_key_symbols_get_keysym(m_keySymbols, keyCodeX, 0) &&
+ keySymX == xcb_key_symbols_get_keysym(m_keySymbols, keyCodeX, 1) )
+ {
+@@ -243,51 +244,12 @@ bool KGlobalAccelImpl::x11KeyPress(xcb_key_press_event_t *pEvent)
+ xcb_ungrab_keyboard(c, XCB_TIME_CURRENT_TIME);
+ xcb_flush(c);
+
+- xcb_keycode_t keyCodeX = pEvent->detail;
+- uint16_t keyModX = pEvent->state & (g_keyModMaskXAccel | KKeyServer::MODE_SWITCH);
+-
+- xcb_keysym_t keySymX = xcb_key_press_lookup_keysym(m_keySymbols, pEvent, 0);
+-
+- // If numlock is active and a keypad key is pressed, XOR the SHIFT state.
+- // e.g., KP_4 => Shift+KP_Left, and Shift+KP_4 => KP_Left.
+- if (pEvent->state & KKeyServer::modXNumLock()) {
+- // If this is a keypad key,
+- if( keySymX >= XK_KP_Space && keySymX <= XK_KP_9 ) {
+- switch( keySymX ) {
+-
+- // Leave the following keys unaltered
+- // FIXME: The proper solution is to see which keysyms don't change when shifted.
+- case XK_KP_Multiply:
+- case XK_KP_Add:
+- case XK_KP_Subtract:
+- case XK_KP_Divide:
+- case XK_KP_Enter:
+- break;
+-
+- default:
+- keyModX ^= KKeyServer::modXShift();
+- }
+- }
+- }
+-
+- int keyCodeQt;
+- int keyModQt;
+- KKeyServer::symXToKeyQt(keySymX, &keyCodeQt);
+- KKeyServer::modXToQt(keyModX, &keyModQt);
+-
+- if ((keyModQt & Qt::SHIFT) && !KKeyServer::isShiftAsModifierAllowed( keyCodeQt ) ) {
+-#ifdef KDEDGLOBALACCEL_TRACE
+- qCDebug(KGLOBALACCELD) << "removing shift modifier";
+-#endif
+- if (keyCodeQt != Qt::Key_Tab) { // KKeySequenceWidget does not map shift+tab to backtab
+- static const int FirstLevelShift = 1;
+- keySymX = xcb_key_symbols_get_keysym(m_keySymbols, keyCodeX, FirstLevelShift);
+- KKeyServer::symXToKeyQt(keySymX, &keyCodeQt);
+- }
+- keyModQt &= ~Qt::SHIFT;
+- }
+-
+- int keyQt = keyCodeQt | keyModQt;
++ int keyQt;
++ if (!KKeyServer::xcbKeyPressEventToQt(pEvent, &keyQt)) {
++ qCWarning(KGLOBALACCELD) << "KKeyServer::xcbKeyPressEventToQt failed";
++ return false;
++ }
++ //qDebug() << "keyQt=" << QString::number(keyQt, 16);
+
+ // All that work for this hey... argh...
+ if (NET::timestampCompare(pEvent->time, QX11Info::appTime()) > 0) {
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..0bf22a3
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+revert-5.38.diff
--
kglobalaccel packaging
More information about the pkg-kde-commits
mailing list