https://bugs.kde.org/show_bug.cgi?id=454474

            Bug ID: 454474
           Summary: KWin tabbox: pass down keys autorepeat flag
           Product: kwin
           Version: git master
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: effects-tabbox
          Assignee: kwin-bugs-n...@kde.org
          Reporter: m...@ratijas.tk
  Target Milestone: ---

Created attachment 149250
  --> https://bugs.kde.org/attachment.cgi?id=149250&action=edit
KWin tabbox - autorepeat

SUMMARY

Currently in tabbox code, code in C++ and QML/JS there's no `autorepeat` flag
for key events.

I looked at the code, but seemed like quite a complicated and custom handling
of shortcuts, keeping track of pressed modifiers (so that the tabbox does not
close while user is holding down Alt key of the Alt+Tab/Alt+Shift+Tab
shortcuts) etc. It turned out to be non-trivial to fix, especially since it
deals with raw xcb events (and I didn't find an autorepeat information in those
structs).

Can we still add that flag when keys are really held down, please?

STEPS TO REPRODUCE
1. Open more than 1 window
2. Press & hold Alt+Tab

OBSERVED RESULT
Selection cycles through the tabbox, endlessly wrapping at the edges. QML code
in tabbox implementations does not receive "autorepeat" flag with
Keys.onPressed event.

EXPECTED RESULT
Autorepeat mode should be detectable in code, and acted upon to provide
slightly different behavior from discrete key presses.

SOFTWARE/OS VERSIONS
Operating System: Arch Linux
KDE Plasma Version: 5.25.80
KDE Frameworks Version: 5.95.0
Qt Version: 5.15.4
Kernel Version: 5.17.9-arch1-1 (64-bit)
Graphics Platform: X11
Processors: 8 × Intel® Core™ i7-6700HQ CPU @ 2.60GHz
Memory: 15.6 GiB of RAM
Graphics Processor: NVIDIA GeForce GTX 970M/PCIe/SSE2

ADDITIONAL INFORMATION
My usecase it to add "boundary checks" handling, so that auto-repeated Alt+Tabs
would stop at the end of a window list instead of cycling forever.

Here an example of already implemented and merged functionality:
https://invent.kde.org/plasma/kscreen/-/merge_requests/90

Note that in case of this specific KScreen OSD I'd like to also support
pressing and holding Meta+P to cycle through the list.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to