color picker popup: replace with mode+overlay v1.1.0-rc2
authorAndrew Chadwick <andrewc-git@piffle.org>
Sat, 8 Dec 2012 20:43:44 +0000 (20:43 +0000)
committerAndrew Chadwick <andrewc-git@piffle.org>
Sat, 29 Dec 2012 05:11:23 +0000 (05:11 +0000)
commitb9536086559f43100a4240e06d22c86ffc850643
treed5d6f7ce46c49be1809879d72451a7d09ca95d98
parentf223db0afa9af1b28bda30cd240bc720ff3a1822
color picker popup: replace with mode+overlay

Replace the old color picker popup window and stategroup stuff with an
InteractionMode and an overlay. Throwing top-level windows around was
the cause of several weird grab issues when dealing with multiple input
devices and input drivers. Maybe it's best to just draw stuff like this
onto the existing canvas and use the same grab/drag management as other
modes. Possibly related:

https://gna.org/bugs/?20384
https://gna.org/bugs/?20358
https://gna.org/bugs/?19710

Adds round corners for the preview rectangle, addressing a cosmetic
concern raised in

http://forum.intilinux.com/mypaint-development-and-suggestions/annoying-colour-picker-behavior/

Making it a mode allows it to be added easily as a toolbar button, so
do that as well.

Functionally, this is a like-for-like replacement, although the preview
no longer follows the pointer outside the main drawing area. It's still
possible to pick colours there, however. Thus there are no string
changes: this code reuses the old menu label and context.

Testers of 1.1.0rc1 may need to rebind their Pick Color action: the
machine-readable action name has changed.

Internally, adds keyup timeouts for modes launched from a keyboard-
friendly "flip" action. The popup window doesn't use it, however.
gui/application.py
gui/canvasevent.py
gui/colorpicker.py
gui/document.py
gui/drawwindow.py
gui/menu.xml
gui/mypaint.xml
gui/toolbar-editmodes.xml