<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body text="#000000" bgcolor="#ffffff">
Aaron, you've inspired me to slightly "pre-announce" something which
I've not yet completed within Qt: Support for more mouse buttons.<br>
(Within KDE, that corresponds to <a
href="https://bugs.kde.org/show_bug.cgi?id=34362">Bug# 34362</a>
and all of it's related, dependent bugs. In Qt, I'm <a
href="http://bugreports.qt.nokia.com/browse/QTBUG-16092">QTBUG-16092</a>,
although there's lots of irrelevant X11-related chatter in that
one.)<br>
<br>
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.<br>
<br>
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.<br>
(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.)<br>
<br>
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.)<br>
<br>
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 <a
href="http://forum.kde.org/viewtopic.php?f=68&t=92861">Forum
-> KDE Software -> KDE Development -> Interface and
Design</a>.<br>
<br>
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.)<br>
</body>
</html>