Thu 01 Nov 2012 01:33:27 PM UTC, original submission:
The colour selectors' last-painted colour is no longer updated correctly. To reproduce:
1. Pick a new colour using the "Colors" subwindow
2. Paint with it, release mouse button
3. Waft the pointer about a bit to make sure the model stroke is split by a timeout
Deviations from expected behaviour:
i. The right-hand colour in the "Colors" subwindow's "Newly chosen color, the color most recently used for painting" control and is not the color just painted with.
ii. The last-painted colour only updates after the model stroke is split, necessitating step 3. It should update immediately because stroke splitting != input stroke ending. This discontinuity makes the app feel jarringly clunky or unresponsive, particularly if the input stroke ended outside the window: in this case, because the stroke is only split when the pointer re-enters the canvas and makes an ungrabbed motion-notify-event, and because it could potentially be minutes or days before that happens (what if the user puts their pen down and goes for a cup of tea?), there might be a jarring on-screen update which seems to have no reason.
I suspect both are caused by https://gitorious.org/mypaint/mypaint/commit/d9474e693762e2c5a583c62077697e02052ecbb9
For ii., I understand that we want to update the colour history when the user puts pixels on the canvas with a brush that requires no pressure, like a splatter brush. So I see why the input stroke observer idea is not being used - however I think it should be. In addition to what we now have, for reasons of GUI responsiveness.
|