bugMyPaint - Bugs: bug #20279, Regressions: last-painted colour...

 
 
Show feedback again

You are not allowed to post comments on this tracker with your current authentification level.

bug #20279: Regressions: last-painted colour no longer updates correctly; colour history is no longer updated at the end of an input

Submitted by:  Andrew Chadwick <achadwick>
Submitted on:  Thu 01 Nov 2012 01:33:27 PM UTC  
 
Severity: 3 - NormalPriority: 5 - Normal
Status: Ready For TestPrivacy: Public
Assigned to: NoneOpen/Closed: Closed
Release: master 3d1f3be94 Wed Oct 31 2012 Planned Release: None
Operating System: All?

Fri 04 Jan 2013 08:57:57 PM UTC, comment #3:

This bug has been closed because it is marked ready-for-test and
no further comments have been added in a long while. Since we
have not heard otherwise, we assume that the fixes works as intended.

If there are problems with the implemented functionality, please
file a new issue.

Jon Nordby <jonnor>
Project Administrator
Fri 02 Nov 2012 10:04:40 PM UTC, comment #2:

Okay, hopefully fixed in a way that's right for all use cases:

https://gitorious.org/mypaint/mypaint/commit/a22e286b279e

Behaviour of "x" history during a stroke:

  • In a continuous movement with the pen held down, pressing "x" toggles between the colours which are found at hist[-1] and hist[-2] at the start of the movement.
  • If the pen is held in one position while strokes are being laid down, and "x" is pressed repeatedly, the entire history is cycled through.

This is the desired 0.9 behaviour, I think. Behaviour of the Colour subwindow's display of the most-recently painted colour:

  • When a stroke is split for any reason (e.g. after the end of an input stroke plus a small amount of time and a motion-notify event, or during a long stroke's motion-notify events), the brush colour at the split point is pushed onto the end of the history.
  • The user pressing "x" in the middle of a long stroke is a special case of the above: it splits the model stroke, starting one with a new colour.
  • When the user finishes a drawing action with pressure, the brush colour is pushed onto the end of the history. It doesn't matter if this happens outside the window because we receive the button-release event anyway due to the implicit grab.

This is two callbacks related to the end of a drawing action with pressure, not one, but neither is redundant. The first is required for correctness with zero-pressure splatter brushes and within strokes; the latter is required for UI responsiveness. We perform de-duplication on the history, so it should be fine.

Andrew Chadwick <achadwick>
Project Administrator
Fri 02 Nov 2012 07:15:55 AM UTC, comment #1:

The commit in question is most likely the cause. But please don't reintroduce the previous annoying mid-stroke bug. I prefer a flickering GUI to broken mid-stroke behaviour. Here is the related discussion:

http://mail.gna.org/public/mypaint-discuss/2012-10/msg00004.html

However, maybe the feature could be split into two - a toggle between the last two color (still bound to "x" like in GIMP) without visual feedback, and a separate color history popup.

Martin Renold <martinxyz>
Project Administrator
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.

Andrew Chadwick <achadwick>
Project Administrator

 

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by jonnor (Posted a comment)
  • -unavailable- added by martinxyz (Posted a comment)
  • -unavailable- added by achadwick (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 3 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Fri 04 Jan 2013 08:57:57 PM UTCjonnorOpen/ClosedOpen=>Closed
    Sun 04 Nov 2012 02:17:57 PM UTCachadwickStatusConfirmed=>Ready For Test
    Fri 02 Nov 2012 07:19:36 AM UTCmartinxyzStatusNone=>Confirmed
    Show feedback again

    Back to the top


    Powered by Savane 3.1-cleanup