History messed up with overlapping click+holds
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Pinta |
Fix Released
|
High
|
Unassigned |
Bug Description
Steps to reproduce:
1) draw a line (to add an item to the history)
1.5) switch to gradient tool
2) hold down the left mouse button, move the mouse
3) (while still holding the left mouse button) begin holding the right mouse button down.
4) release the left mouse button and the right mouse button (in that order, I think). (You should now have at least 3 history items)
5) click the back/undo (history) button
What happens:
Two history items are added, clicking undo once undoes the second gradient. Clicking a second time does nothing. Clicking undo a third time will undo the first gradient and whatever you drew before it (so, essentially, you lose a history item).
What's expected:
Either one gradient is drawn and one history item is added, or two gradients are drawn and two history items are added. In neither case should history be lost.
System Info:
Ubuntu 10.10 (Maverick) 32-bit
Pinta 0.3
[Edit: Added step 1.5, which I accidentally omitted.]
description: | updated |
Changed in pinta: | |
status: | Fix Committed → Incomplete |
Changed in pinta: | |
milestone: | 0.5 → none |
Additionally, performing a "select all" from the Edit menu after clicking undo twice causes Pinta to crash. here's the stacktrace:
Stacktrace:
at (wrapper managed-to-native) Cairo.NativeMet hods.cairo_ image_surface_ get_width (intptr) <0x00004> hods.cairo_ image_surface_ get_width (intptr) <0xffffffff> ace.get_ Width () <0x00014> rerSurface. RenderCell (Cairo. Context, int,int) <0x00044> rerSurface. Render (Gdk.Drawable, Gtk.Widget, Gdk.Rectangle, Gdk.Rectangle, Gdk.Rectangle, Gtk.CellRendere rState) <0x000c6> r.Render_ cb (intptr, intptr, intptr, Gdk.Rectangle& ,Gdk.Rectangle& ,Gdk.Rectangle& ,Gtk.CellRender erState) <0x00179> r.Render_ cb (intptr, intptr, intptr, Gdk.Rectangle& ,Gdk.Rectangle& ,Gdk.Rectangle& ,Gtk.CellRender erState) <0xffffffff> .gtk_main () <0x00004> .gtk_main () <0xffffffff> .Main (string[]) <0x002a8> .runtime_ invoke_ void_object (object, intptr, intptr, intptr) <0xffffffff>
at (wrapper managed-to-native) Cairo.NativeMet
at Cairo.ImageSurf
at Pinta.CellRende
at Pinta.CellRende
at Gtk.CellRendere
at (wrapper native-to-managed) Gtk.CellRendere
at (wrapper managed-to-native) Gtk.Application
at (wrapper managed-to-native) Gtk.Application
at Gtk.Application.Run () <0x0000a>
at Pinta.MainClass
at (wrapper runtime-invoke) Pinta.MainClass
Native stacktrace:
/usr/bin/cli() [0x80ca6e4] libgtk- x11-2.0. so.0(gtk_ cell_renderer_ render+ 0xc0) [0x90dab80] libgtk- x11-2.0. so.0(+0x288db6) [0x92d3db6] libgtk- x11-2.0. so.0(+0x289bc4) [0x92d4bc4] libgtk- x11-2.0. so.0(+0x284459) [0x92cf459] libgtk- x11-2.0. so.0(+0x28546a) [0x92d046a] libgtk- x11-2.0. so.0(+0x155e58) [0x91a0e58] libgobject- 2.0.so. 0(+0xb817) [0xaab817] libgobject- 2.0.so. 0(g_closure_ invoke+ 0x19a) [0xaad1aa] libgobject- 2.0.so. 0(+0x24d76) [0xac4d76] libgobject- 2.0.so. 0(g_signal_ emit_valist+ 0x603) [0xac6613] libgobject- 2.0.so. 0(g_signal_ emit+0x32) [0xac6f02] libgtk- x11-2.0. so.0(+0x29c5c6) [0x92e75c6] libgtk- x11-2.0. so.0(gtk_ main_do_ event+0x65b) [0x9199abb] libgdk- x11-2.0. so.0(+0x3e43b) [0x86b43b] libgdk- x11-2.0. so.0(+0x3e3ea) [0x86b3ea] libgdk- x11-2.0. so.0(+0x3e3ea) [0x86b3ea] libgdk- x11-2.0. so.0(+0x6e214) [0x89b214] libgdk- x11-2.0. so.0(+0x3abb4) [0x867bb4] libgdk- x11-2.0. so.0(gdk_ window_ process_ all_updates+ 0x157) [0x86cb17] libgtk- x11-2.0. so.0(+0xb5d6d) [0x9100d6d] libgdk- x11-2.0. so.0(+0x16f08) [0x843f08] 2.0.so. 0(+0x3a0b1) [0x14a0b1] 2.0.so. 0(g_main_ context_ dispatch+ 0x1d5) [0x14c0c5] 2.0.so. 0(+0x3fed8) [0x14fed8] 2.0.so. 0(g_main_ loop_run+ 0x187) [0x150417] libgtk- x11-2.0. so.0(gtk_ main+0xb9) [0x9199d69] cli(mono_ runtime_ exec_main+ 0xde) [0x8113b1e] cli(mono_ runtime_ run_main+ 0x15a) [0x811429a] cli(mono_ main+0x18c4) [0x80b3524] so.6(__ libc_start_ main+0xe6) [0x1f1ce6]
/usr/bin/cli() [0x80f6893]
[0x404410]
[0x3fef6a5]
[0x3fef665]
[0x3fef245]
[0x3feeff7]
[0x3feeef2]
[0xf1e92e]
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/lib/libglib-
/lib/libglib-
/lib/libglib-
/lib/libglib-
/usr/lib/
[0x3fecd70]
[0x3fecd33]
[0x427559]
[0x427204]
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/cli() [0x805ad25]
/lib/libc.
/usr/bin/cli() [0x805ac61]
Debug info...