URL:
<http://gna.org/bugs/?18780>
Summary: Huge strokes and stroke-blink: blink never ends;
exception follows on attempt to hide layer
Project: MyPaint
Submitted by: achadwick
Submitted on: Mon Oct 3 01:17:16 2011
Severity: 3 - Normal
Priority: 5 - Normal
Status: None
Privacy: Public
Assigned to: None
Originator Email:
Open/Closed: Open
Discussion Lock: Any
Release: git 45265644a3
Planned Release: None
Operating System: Ubuntu GNU/Linux 11.04
_______________________________________________________
Details:
In the latest Git, if you make a _huge_ stroke then attempt to pick it with
Pick Context, the stroke blink state is entered and you see the stroke
highlighted. However sometimes the blink state is never left. Not sure what's
going on here, possibly a race condition: it seems to happen more frequently
for really huge strokes. To reproduce (on my pretty fast desktop replacement
laptop):
1. Pick a nice light colour and background so the blink is more visible.
2. Zoom _all_ the way out. I'm working on master since 6d624040c2a was merged
so this is one level further than 0.9.1, say.
3. Pick a simple, big brush to save time and make processing faster. I used
experimental/pixelblocking. Make it huge too, set the radius to max.
4. Make the window big. Doesn't matter if fullscreened or not.
5. Paint a _huge_ stroke across the canvas, then a smaller one. This can be
done with either the mouse or a stylus, and can be a straight-line stroke
too.
6. Pick the big one with "W", notice how stroke-blink is never left. You can
even add and switch layers and it won't go away.
7. Pick the smaller one with "W", and notice how stroke-blink is left
quickly.
Not fatal so far, but it's possible to provoke an exception in the 6. state
above: while the stroke blink overlay is shown, try to set the current layer
as invisible using the layers list. The following exception is produced:
Traceback (most recent call last):
File "/home/andrewc/Development/MyPaint/gui/tileddrawwidget.py", line 358,
expose_cb(self=<TiledDrawWidget object at 0x1e50be0 (TiledDrawWidget at
0x20a2800)>, widget=<TiledDrawWidget object at 0x1e50be0 (TiledDrawWidget at
0x20a2800)>, event=<gtk.gdk.Event at 0x31da788: GDK_EXPOSE area=[41, 37, 969,
841]>)
else:
self.repaint(event.area)
return True
variables: {'self.repaint': ('local', <bound method TiledDrawWidget.repaint
of <TiledDrawWidget object at 0x1e50be0 (TiledDrawWidget at 0x20a2800)>>),
'event.area': ('local', gtk.gdk.Rectangle(41, 37, 969, 841))}
File "/home/andrewc/Development/MyPaint/gui/tileddrawwidget.py", line 410,
repaint(self=<TiledDrawWidget object at 0x1e50be0 (TiledDrawWidget at
0x20a2800)>, device_bbox=gtk.gdk.Rectangle(41, 37, 969, 841))
cr, surface, sparse, mipmap_level, gdk_clip_region =
self.render_prepare(device_bbox)
self.render_execute(cr, surface, sparse, mipmap_level,
gdk_clip_region)
variables: {'surface': ('local', <lib.pixbufsurface.Surface instance at
0x10a54e60>), 'gdk_clip_region': ('local', <GdkRegion at 0x33df780>),
'mipmap_level': ('local', 4), 'sparse': ('local', False),
'self.render_execute': ('local', <bound method TiledDrawWidget.render_execute
of <TiledDrawWidget object at 0x1e50be0 (TiledDrawWidget at 0x20a2800)>>),
'cr': ('local', <gtk.gdk.CairoContext object at 0x109e890>)}
File "/home/andrewc/Development/MyPaint/gui/tileddrawwidget.py", line 501,
render_execute(self=<TiledDrawWidget object at 0x1e50be0 (TiledDrawWidget at
0x20a2800)>, cr=<gtk.gdk.CairoContext object>,
surface=<lib.pixbufsurface.Surface instance>, sparse=False, mipmap_level=4,
gdk_clip_region=<GdkRegion>)
if self.overlay_layer:
idx = layers.index(self.doc.layer)
layers.insert(idx+1, self.overlay_layer)
variables: {'layers': ('local', []), 'self.doc.layer': ('local',
<lib.layer.Layer instance at 0x1e59fc8>), 'idx': (None, [])}
ValueError: <lib.layer.Layer instance at 0x1e59fc8> is not in list
Stroke blink feedback when picking big strokes can be quite hit-or-miss, so
be sure to see the stuck feedback before attempting to reproduce the
exception.
_______________________________________________________
Reply to this item at:
<http://gna.org/bugs/?18780>
_______________________________________________
Message sent via/by Gna!
http://gna.org/
_______________________________________________
Mypaint-bugs mailing list
[email protected]
https://mail.gna.org/listinfo/mypaint-bugs