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.)
_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel

Reply via email to