Converting Stroke to Path messes document's structure

Bug #1662812 reported by Vladimir Savic on 2017-02-08
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Inkscape
Undecided
Jabiertxof

Bug Description

Inkscape revision 15495.

Steps to reproduce:
1) Write some text, a few letters will do. This step isn't necessary, but helps visualizing things better.
2) Draw Circle object
3) Unset fill of that circle and make it has stroke. The bigger value, the better. Again only for better visualization.

Pick that Circle and hit Ctrl+Alt+c (or invoke corresponding menu item). After converting stroke to path, text object should be completely displaced. After some examining of this bug with su_v, we figured out there are some important remarks to add:
a) If Circle has fill, displacement doesn't happen.
b) Converting Circle to path first, nudging it left-right/up-down using arrow keys and then converting stroke to path works.
c) If Circle is first being grouped (one object group) and stroke is being converted to path upon diving into that group, displacement doesn't happen.
d) It messes document internal structure, so there is a high chance of triggering crash on Undo.

As it seems at first glance, what's happening is that layer gets rotated by transform attribute of object being converted.

su_v (suv-lp) wrote :

Reproduced with lp:inkscape r15470 and r15495 on Ubuntu 14.04.5 LTS.

Changed in inkscape:
status: New → Confirmed
tags: added: regression transformations
su_v (suv-lp) wrote :

The regression could be related to the new 'Stroke to path' command implemented based on
* Bug #1556592 “Stroke to fill retaining fills”
  https://bugs.launchpad.net/inkscape/+bug/1556592
but it is not exposed with the initial implementation (lp:inkscape r15035, r15036 on OS X 10.7.5 do not reproduce the reported issue). A later commit (r15100) changed the initial behavior to only create a group if the stroked object has a fill (no archived builds of trunk available to further bisect, unfortunately).

description: updated
Jabiertxof (jabiertxof) on 2017-02-08
Changed in inkscape:
assignee: nobody → Jabiertxof (jabiertxof)
Jabiertxof (jabiertxof) wrote :

I hope this patch fix the bug.

su_v (suv-lp) wrote :

Patch tested successfully with lp:inkscape r15497 on Ubuntu 14.04.5 LTS (both regular and legacy command) in a brief session using a simple rotated rectangle with rounded corners (no markers, wide stroke, with and without fill).

I can confirm this patch works, at least for cases I use in my normal workflow.

jazzynico (jazzynico) on 2017-02-09
Changed in inkscape:
milestone: none → 0.93
status: Confirmed → In Progress
Jabiertxof (jabiertxof) wrote :

Fixed on trunk r.15504 Also this fix improve the opacity and filter problems when more than one element are created for each path. ej fill and stroke, now opacity and filter go to parent group container.

Changed in inkscape:
status: In Progress → Fix Released
su_v (suv-lp) wrote :

Testing with lp:inkscape r15505 on Ubuntu 14.04:
Using the legacy command (only converts stroke) on a stroked and filled rectangle, or the new command on a stroked unfilled rectangle, produces this console message:

** (inkscape:4053): CRITICAL **: virtual void Inkscape::XML::SimpleNode::setPosition(int): assertion '_parent != NULL' failed

jazzynico (jazzynico) on 2017-02-11
Changed in inkscape:
milestone: 0.93 → none
Jabiertxof (jabiertxof) wrote :

fixed warning in r.15506

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers