[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