<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>





 <p>On August 15th, 2015, 9:36 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;">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>
 </blockquote>





 <p>On August 15th, 2015, 9:42 nachm. UTC, <b>Yuxuan Shui</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;">Any suggestions how to fix this?</p></pre>
 </blockquote>





 <p>On August 15th, 2015, 10:07 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;">basically by ignoring "Qt::Key_Tab | Qt::SHIFT" and map "Qt::Key_Backtab" to it (at least this should be what is grabbed)</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;">See https://git.reviewboard.kde.org/r/124893/</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>