The next step (4.7) Maybe MORE MOUSE BUTTONS ?
Rick Stockton
rickstockton at reno-computerhelp.com
Mon Jan 31 22:27:11 CET 2011
Aaron, you've inspired me to slightly "pre-announce" something which
I've not yet completed within Qt: Support for more mouse buttons.
(Within KDE, that corresponds to Bug# 34362
<https://bugs.kde.org/show_bug.cgi?id=34362> and all of it's related,
dependent bugs. In Qt, I'm QTBUG-16092
<http://bugreports.qt.nokia.com/browse/QTBUG-16092>, although there's
lots of irrelevant X11-related chatter in that one.)
Dennis Dzyubenko will be reviewing my design in the next week or so.
(Or, if he's too busy, I'll create, test, and submit the patch without
his pre-coding design review.) For a long time, as you all know, Qt has
handled only the low-numbered buttons for which X11 has a mask of
'button state' bits. But, the notification from X11 into Qt for
ButtonPressed and ButtonReleased events actually provides the button
number as an integer. We can't tell whether a user already had a "high"
button number pressed when they move into "our" Window... but, with some
new coding, we *CAN* see them Release and Press those buttons after
they've entered.
The first part of the work is within kdelibs, of course. KDevelop should
also be enhanced. But, for people to *SEE* something new and cool on
4.7, right away, I think that Plasma should show off enhanced mouse
shortcuts, right out of the box.
(In 4.7, we should be able to offer use of "gamer" mouse buttons as
shortcuts on the Compositing desktop.) That gets our UI more competitive
with the mouse shortcuts of Compiz. And, if we want to, we could also
use combinations of low-numbered buttons (those which DO have 'button
state" mask bits) as mouse-only modifiers for high-numbered button click
actions. (I.e., providing a user with only two thumb buttons, Button8
and Button9, with the ability to define more keyboard-free shortcut
actions by combining these buttons with Button2, or Button3... and maybe
wheel actions as well.)
That's a lot of work, in a lot of different parts of KDE. I've never
submitted a single patch for KDE, and don't have a lot of time to donzte
into this effort. (Although I'll be delighted to jump on any new Qt
"wrapper" APIs which might be needed to interface with X11.) Qt has
actually supported Button8 and Button9, as well as the left and right
tilt wheels (Button6 and Button7), since last May ... but I'm going to
finish that job, going up to about 30 buttons. (Button4 and Button5,
along with Button6 and Button7, appear to KDE as wheel events, and I
have no plan to change that interface. So this enhancement is concerned
primarily with 8, 9, and higher numbers, and maybe a re-done shortcut
widget which listens for combinations of multiple buttons.)
I think that BC requires me to implement an extension of the current
mask, rather than changing the API to use integers. As far as X11 is
concerned, that should handle our needs for using a single mouse as a
desktop's primary pointer. This is obviously a large project, and I
don't want to overrun the Plasma Dev ML with tons of messages about
mouse-button enhancements in other areas. So I've opened a forum topic
for it, "More Mouse Buttons (Devs only, PLEASE)" at Forum -> KDE
Software -> KDE Development -> Interface and Design
<http://forum.kde.org/viewtopic.php?f=68&t=92861>.
I have an immediate question for those of you who know KDE better than I
do: Is there a naming convention which you would like me to use when I
expand the Qt enumeration? (If there are plans for KDE mouse support on
Windows, or other non-X11 platforms, please think about button naming
compatibility. I know Zilch about pointers on those platforms.)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/plasma-devel/attachments/20110131/11c17550/attachment.htm
More information about the Plasma-devel
mailing list