> On June 7, 2011, 4:28 p.m., Michael Jansen wrote:
> > Why don't you fix KKeyServer to return the correct results instead of 
> > fixing the wrong ones here?

Yes, my first thought was to fix this by changing KKeyServer::keyQtToModX to 
add Shift to the modifiers if it is needed to get the symbol.  This could be 
done using the (currently unused) function getModsRequired(uint sym) in 
kkeyserver_x11.cpp. But this is public API and I don't know what other users 
there are and what the expected behavior is, changing it to do add modifiers 
that were not there based on the behavior of some widget for entering shortcuts 
could be considered unexpected:)
Same goes for KKeyServer::xEventToQt(), that would need to be changed to strip 
Shift modifier in the cases where KKeySequenceWidget has removed it. 

The positive thing about doing it this way would be that 
isShiftAsModifierAllowed() would not need to be exported, it could be in a 
private header as Aaron suggested in the other review request.


- Simon


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/101520/#review3751
-----------------------------------------------------------


On June 6, 2011, 11:02 a.m., Simon Persson wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/101520/
> -----------------------------------------------------------
> 
> (Updated June 6, 2011, 11:02 a.m.)
> 
> 
> Review request for KDE Runtime and Michael Jansen.
> 
> 
> Summary
> -------
> 
> Second patch to fix this bug, depends on patch in review request 101515.
> 
> KKeySequenceWidget used to enter shortcuts removes shift from the recorded 
> shortcut if the symbol produced from that physical key is different when 
> shift is used (upper/lowercase letters doesn't count). kglobalaccel needs to 
> include shift in the grab in order to be triggered on this class of 
> shortcuts, and then in the keypress event handler it also needs to strip the 
> shift again before checking which shortcut was just triggered.
> 
> 
> This addresses bugs 179504, 197548 and 215030.
>     http://bugs.kde.org/show_bug.cgi?id=179504
>     http://bugs.kde.org/show_bug.cgi?id=197548
>     http://bugs.kde.org/show_bug.cgi?id=215030
> 
> 
> Diffs
> -----
> 
>   kglobalaccel/kglobalaccel_x11.cpp 2576d2e 
> 
> Diff: http://git.reviewboard.kde.org/r/101520/diff
> 
> 
> Testing
> -------
> 
> Tested using the master branch, running in a Xephyr session using gb,us and 
> se keyboard layouts. The tested layout needs to be the first entry in the 
> list of layouts  in the keyboard layout switcher, otherwise it will not work. 
> Works for all the !"£$%^&*()_+ etc, no regression on shortcuts with only a 
> number, only a letter or shift+letter. Also no regression on alt+shift+tab or 
> ctrl+shift+esc.
> 
> 
> Thanks,
> 
> Simon
> 
>

Reply via email to