
Hi all,
I worked on the problem for quite some hours now, trying to figure out how things work :-(
Try the patch attached; now it is possible to apply an effect, undo, redo, and then the 2nd undo bugs.... It also fixes a bug where Inkscape did not respond to all parameter changes when an LPE stack was applied to a path. This is what I got using gdb: (first i draw a line, then press ctrl+g to group it) * When an effect is applied, sp_document_done is called, after which no changes are written to XML. That's good, and that's why the 1st undo works without a problem.
* The 1st undo works fine too it seems. It writes stuff to XML, and the LPE framework reacts to changing some more in XML. But no more stuff is changed after the sp_document_undo call ends.
* Then the 1st redo. Here stuff gets updated and written to XML by the LPE framework twice. Once during the sp_document_redo call. But also after that call: (gdb) bt #0 0x0047f426 in sp_group_perform_patheffect () <-- this one writes to XML #1 0x0054b6ef in sp_lpe_item_update_patheffect () #2 0x00439b60 in SPObject::emitModified () #3 0x0049505b in sp_defs_modified (object=0x4a6b018, flags=0) at src/sp-defs.cpp:118 #4 0x00439aba in SPObject::emitModified () #5 0x0047e939 in CGroup::onModified () #6 0x0044331a in sp_root_modified () #7 0x00439aba in SPObject::emitModified () #8 0x0043240f in SPDocument::_emitModified () #9 0x004325b1 in SPDocument::_updateDocument () #10 0x00432652 in sp_document_idle_handler () #11 0x685e73d7 in g_main_context_dispatch () from D:\Inkscapetrunk\inkscape\libglib-2.0-0.dll I think, that's where things are starting to go wrong. * The 2nd undo. I get: ** (inkscape.exe:3124): WARNING **: Incomplete undo transaction: ** (inkscape.exe:3124): WARNING **: Event: Set attribute d to "m 202.85714,658.0 .....
If I do undo, redo, undo, while in gdb, I can go on indefinitely. It only bugs outside gdb.
Ciao, Johan
-----Original Message----- From: J.B.C.Engelen@...1578... [mailto:J.B.C.Engelen@...1578...] Sent: zaterdag 24 oktober 2009 2:46 To: scislac@...400...; inkscape-devel@lists.sourceforge.net Cc: buliabyak@...400... Subject: Re: [Inkscape-devel] 0.47, probably not in the next week
Ok I have good news. I found what is causing all the LPE trouble. There is another bug with stacked LPEs that is related. I hope to fix it this weekend.
Cheers, Johan
-----Original Message----- From: Joshua A. Andler [mailto:scislac@...400...] Sent: donderdag 22 oktober 2009 6:17 To: inkscape-devel Cc: bulia byak Subject: [Inkscape-devel] 0.47, probably not in the next week
Hey All,
Subject says it all. My family is moving this week and Jon
& I will be
at Google HQ this weekend for the GSoC Mentor's summit. I will not have a chance to review any patches until I am back early
next week.
Bulia, if you see any good and safe ones, feel free to
wreak havoc. ;)
Honestly, if someone wanted to take a look at the LPE Undo issues (change a param on any LPE and then hit undo). It would
probably save
us a ton of grief with user complaints if it could be fixed (obviously, only if the issue is not to complex).
Cheers, Josh