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