<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="12" style="border: 1px #c9c399 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
<tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="https://git.reviewboard.kde.org/r/123376/">https://git.reviewboard.kde.org/r/123376/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On August 12th, 2015, 10:17 vorm. UTC, <b>Thomas Lübking</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">bump, we should get this fixed for 5.4</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Shui, do you want to work on improving the patch and adding the testcase?</p></pre>
</blockquote>
<p>On August 15th, 2015, 9:15 nachm. UTC, <b>Thomas Lübking</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">-100
THE PATCH BREAKS BACKTABBING!!</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Btw. entirely not figured by autotests :-P</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">@Martin
test might be quite a problem since this</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;"><div class="codehilite" style="background: #f8f8f8"><pre style="line-height: 125%"><span style="color: #000080; font-weight: bold">diff --git a/autotests/kglobalshortcuttest.cpp b/autotests/kglobalshortcuttest.cpp</span>
<span style="color: #000080; font-weight: bold">index 30c932c..92c3f86 100644</span>
<span style="color: #A00000">--- a/autotests/kglobalshortcuttest.cpp</span>
<span style="color: #00A000">+++ b/autotests/kglobalshortcuttest.cpp</span>
<span style="color: #800080; font-weight: bold">@@ -37,6 +37,7 @@</span>
#include <QX11Info>
#define XK_MISCELLANY
#define XK_XKB_KEYS
<span style="color: #00A000">+#define XK_LATIN1</span>
#include <X11/keysymdef.h>
#include <xcb/xcb_keysyms.h>
#include <xcb/xtest.h>
<span style="color: #800080; font-weight: bold">@@ -51,7 +52,7 @@</span>
*
*/
<span style="color: #A00000">-const QKeySequence sequenceA = QKeySequence(Qt::SHIFT + Qt::META + Qt::CTRL + Qt::ALT + Qt::Key_F12);</span>
<span style="color: #00A000">+const QKeySequence sequenceA = QKeySequence(Qt::SHIFT + Qt::META + Qt::CTRL + Qt::ALT + Qt::Key_0/*Qt::Key_F12*/);</span>
const QKeySequence sequenceB = QKeySequence(Qt::Key_F29);
const QKeySequence sequenceC = QKeySequence(Qt::SHIFT + Qt::META + Qt::CTRL + Qt::Key_F28);
const QKeySequence sequenceD = QKeySequence(Qt::META + Qt::ALT + Qt::Key_F30);
<span style="color: #800080; font-weight: bold">@@ -175,15 +176,16 @@ void KGlobalShortcutTest::testActivateShortcut()</span>
const xcb_keycode_t control = getCode(XK_Control_L);
const xcb_keycode_t alt = getCode(XK_Alt_L);
const xcb_keycode_t f12 = getCode(XK_F12);
<span style="color: #00A000">+ const xcb_keycode_t _0 = getCode(XK_0);</span>
xcb_key_symbols_free(syms);
xcb_test_fake_input(c, XCB_KEY_PRESS, meta, XCB_TIME_CURRENT_TIME, w, 0, 0, 0);
xcb_test_fake_input(c, XCB_KEY_PRESS, control, XCB_TIME_CURRENT_TIME, w, 0, 0, 0);
xcb_test_fake_input(c, XCB_KEY_PRESS, alt, XCB_TIME_CURRENT_TIME, w, 0, 0, 0);
xcb_test_fake_input(c, XCB_KEY_PRESS, shift, XCB_TIME_CURRENT_TIME, w, 0, 0, 0);
<span style="color: #A00000">- xcb_test_fake_input(c, XCB_KEY_PRESS, f12, XCB_TIME_CURRENT_TIME, w, 0, 0, 0);</span>
<span style="color: #00A000">+ xcb_test_fake_input(c, XCB_KEY_PRESS, _0, XCB_TIME_CURRENT_TIME, w, 0, 0, 0);</span>
<span style="color: #A00000">- xcb_test_fake_input(c, XCB_KEY_RELEASE, f12, XCB_TIME_CURRENT_TIME, w, 0, 0, 0);</span>
<span style="color: #00A000">+ xcb_test_fake_input(c, XCB_KEY_RELEASE, _0, XCB_TIME_CURRENT_TIME, w, 0, 0, 0);</span>
xcb_test_fake_input(c, XCB_KEY_RELEASE, shift, XCB_TIME_CURRENT_TIME, w, 0, 0, 0);
xcb_test_fake_input(c, XCB_KEY_RELEASE, meta, XCB_TIME_CURRENT_TIME, w, 0, 0, 0);
xcb_test_fake_input(c, XCB_KEY_RELEASE, control, XCB_TIME_CURRENT_TIME, w, 0, 0, 0);
<span style="color: #800080; font-weight: bold">@@ -191,6 +193,7 @@ void KGlobalShortcutTest::testActivateShortcut()</span>
xcb_flush(c);
QVERIFY(actionASpy.wait());
<span style="color: #00A000">+</span>
QCOMPARE(actionASpy.count(), 1);
#else
QSKIP("This test requires to be compiled with XCB-XTEST");
<span style="color: #000080; font-weight: bold">diff --git a/src/runtime/plugins/xcb/kglobalaccel_x11.cpp b/src/</span>
</pre></div>
</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">simple modification already fails on the trigger test, despite the shortcut allocation on the live system works.
The problem is that the registered key sequence is actually Qt::META + Qt::CTRL + Qt::ALT + Qt::Key_Equal, and the bigger problem is, that this is because of a german keyboard layout ...</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I assume we must fake in a key press and read the generated event (iow, clone the shortcut editor behavior) for this.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">However: moot point. This patch breaks backtabbing, so can NO WAY GO IN!</p></pre>
</blockquote>
</blockquote>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Weirdness may be in KKEyServer::isShiftAsModifierAllowed() which allows Backtab, but not Tab.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">kkeysequencewidget.cpp however has special handling (which kglobaccel would have to adapt, but this is a total mess)</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;"><div class="codehilite" style="background: #f8f8f8"><pre style="line-height: 125%"> <span style="color: #008000; font-weight: bold">if</span> <span style="color: #666666">((</span><span style="color: #008000; font-weight: bold">keyQt</span> <span style="color: #666666">==</span> <span style="color: #008000; font-weight: bold">Qt</span><span style="color: #666666">:</span><span style="color: #AA22FF">:Key_Backtab</span><span style="color: #666666">)</span> <span style="color: #666666">&&</span> <span style="color: #666666">(</span><span style="color: #008000; font-weight: bold">d-</span><span style="color: #666666">></span><span style="color: #008000; font-weight: bold">modifierKeys</span> <span style="color: #666666">&</span> <span style="color: #008000; font-weight: bold">Qt</span><span style="color: #666666">:</span><span style="color: #AA22FF">:SHIFT</span><span style="color: #666666">))</span> {
<span style="color: #666666">0758</span> keyQt <span style="color: #666666">=</span> Qt<span style="color: #666666">::</span>Key_Tab <span style="color: #666666">|</span> d<span style="color: #666666">-></span>modifierKeys;
<span style="color: #666666">0759</span> } <span style="color: #008000; font-weight: bold">else</span> <span style="color: #008000; font-weight: bold">if</span> <span style="color: #666666">(</span><span style="color: #008000; font-weight: bold">KKeyServer</span><span style="color: #666666">:</span><span style="color: #AA22FF">:isShiftAsModifierAllowed</span><span style="color: #666666">(</span><span style="color: #008000; font-weight: bold">keyQt</span><span style="color: #666666">))</span> {
<span style="color: #666666">0760</span> keyQt <span style="color: #666666">|=</span> d<span style="color: #666666">-></span>modifierKeys;
</pre></div>
</p></pre>
<br />
<p>- Thomas</p>
<br />
<p>On April 25th, 2015, 7:54 nachm. UTC, Yuxuan Shui wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: 1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
<tr>
<td>
<div>Review request for KDE Frameworks, Martin Gräßlin and Thomas Lübking.</div>
<div>By Yuxuan Shui.</div>
<p style="color: grey;"><i>Updated April 25, 2015, 7:54 nachm.</i></p>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>
<a href="https://bugs.kde.org/show_bug.cgi?id=341959">341959</a>
</div>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt;">Repository: </b>
kglobalaccel
</div>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">For details, see discussion in corresponding bug report.</p></pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>src/runtime/kglobalaccel_x11.cpp <span style="color: grey">(abee5bc)</span></li>
</ul>
<p><a href="https://git.reviewboard.kde.org/r/123376/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>