I've gotten to a point in the tablet work where I'm ready do do more, but we'll need some fundamental changes to the internals.
Basically we will need to revisit anywhere we are using GDK_MOD1_MASK, GDK_CONTROL_MASK, GDK_SHIFT_MASK, etc.
The problem is that things are addressing the *physical* aspect of how things are triggered instead of the *logical* aspect. Up until now this has mainly affected Mac users. However, as I add more tablet support, I'm hitting up against that exact same set of limitations.
For example, on other OS's the extra buttons on a Wacom tablet itself can be mapped to various modifier keys. On OS X I have the option to set things to shift, Option(alt), Control and Command. That works ok for now, since it lets me draw with only the tablet (since I don't need to touch the keyboard for those).
It would be good to have that same freedom of workflow (or actually more) on Linux. But with Ubuntu, those four or eight extra buttons actually show up as buttons (numbers 9, 10, 11, 12, 13, 14, 15, and 16 on an Intuos3). So if someone is using a standard stylus on the tablet instead of just 3 buttons they get 11! Now that is where we need to start being able to use those buttons.
Instead of requiring an Alt-click to select under, for example, we could allow for Btn9+click to do the same function.
One additional factor to consider is non-tablet input. There are many different devices that GIMP supports through other means. It would be good if our internals had support for that too. See the "Hardware Support" section at http://www.gimp.org/features/
So the first round is to do a survey of the code and figure out the smart way to replace instances of "is the user dragging while holding down the ALT key?" with "is the user doing a tertiary drag" or "is the user doing a smart-draw drag" instead. I also would want to get away from a single "the magic key" for everything, and allow for context-specific use.