Moving shape with connectors, disconnected ends of connectors go wild

Bug #479553 reported by John M. Długosz on 2009-11-09
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Inkscape
Medium
Unassigned

Bug Description

Start with the "binary-tree 1.svg" that I've used for two other bug reports.

Select the left subtree containing B, it's two children (A and C), and the two lines connecting them. Drag the lot up and left, dropping with B above and to the left of D.

Upon releasing the mouse, the two arrows jump to point to things way off the page, not staying the same nor staying where the other ends were originally.

(Selecting only B and the two lines is sufficient to reproduce).

Related branches

John M. Długosz (jdlugosz) wrote :
~suv (suv-lp) on 2009-11-09
tags: added: connectors
jazzynico (jazzynico) wrote :

I confirm that the connectors don't behave as expected.
But it's probably due to the fact that some attributes are missing.

The SVG code of the B->A connector is (style removed):
---
<path
       d="M 216.10246,468.98308 196.5363,511.54286"
       id="path3994"
       inkscape:connector-type="polyline"
       inkscape:connection-start="#g3944"
       sodipodi:nodetypes="cc" />
---

If you add (with the XML editor) inkscape:connection-end="#g3956" (#g3956 is your A object ID), the connector no longer moves wildly.
Same problem with the B->C connector (missing inkscape:connection-end). All the other connectors don't have inkscape:connection-end AND inkscape:connection-start.

Did you manually adjust the connectors' start and end?

John M. Długosz (jdlugosz) wrote :

Yes, since they were drawn to the centers of the objects, not to the visible edges as they should be (see bug #474881), I had to adjust them all using the node editor. Perhaps (I don't remember exactly) when I drew it, the sharp end wasn't "locked" onto the red dot in the center, but placed approximately where I wanted it to really be at the edge of the object being pointed to.

Whatever's in the object model, it was created by the GUI, not by manually writing or adjusting the XML.

jazzynico (jazzynico) wrote :

I confirm that moving a connector's end with the GUI removes its start or end inkscape attribute.
Then, the unattached part looks somewhat lost on the canvas...
I don't know what's the expected behavior for unattached connectors.

Changed in inkscape:
importance: Undecided → Medium
status: New → Confirmed
John M. Długosz (jdlugosz) wrote :

Expected behavior?
Given a drawing with two arrows, that look identical, and offer no way to even tell by looking at it that one was created using the pencil tool and the other using the connector tool, I would expect them to behave the same when selected and manipulated.

In my file, both endpoints were adjusted (to get rid of the overdrawing to the center of the object), but the "start" side was still attached to its original object (and moving it snapped the line back to the center, not relative to how I had adjusted it).

~suv (suv-lp) wrote :

a) manually adjusting a connector end point disconnects the connector end point <http://tavmjong.free.fr/INKSCAPE/MANUAL/html/Connectors-Modifying.html>. What is missing has already been filed many times as RFE: “multiple user-defined connector points” (see bug #171027 <https://bugs.launchpad.net/inkscape/+bug/171027> and its duplicates).

b) the dislocation of the disconnected ends of the connector lines is certainly not expected behavior and has the same root cause as the other bugs you filed with the same octree drawing (excluding so far the original ODG and WMF export issues): clones and connectors inside (nested) transformed groups.

You can verify yourself that it is related to the 'resizing' or 'fit page to selection' transformation that is applied to "Layer 1":
1) open the original octree drawing, open 'Edit > XML Editor', select "Layer 1" in the list of elements on the left
2) in the attributes list on the right side, select 'transform' and use the 'delete' button in the toolbar
3) back in the main window, zoom out to see both the page border and the diagram which has been moved back to its position relative to 0,0 before the page resize.
4) now you can move, ungroup or otherwise edit the groups, connectors and clones without any unexpected dislocations of endpoints or objects.

~suv (suv-lp) wrote :

note: actually step 4) isn't quite correct in that ungrouping the group containing 'G' and the original circle still wrongly transforms the cloned circles inside their groups by the inverse transformation that is applied to the group with 'G' (bug #479638). AFAIU it is due to the fact that circles and other shapes as default keep a transform attribute when moved, unlike paths and rectangles.

Steve Litt (slitt) wrote :

On 12/8/2010 I got a similar unexpected behavior using only the GUI. I made a diagram with a bunch of connectors connecting a bunch of boxes, copied the whole thing to another part of the diagram, and when I did any kind of move on the connectors, they sank an inch or two each time I tried to manipulate them. I'd changed one of the connectors to 3pt and arrow mend2. It was aggravating to say the least, because nobody wants to recreate and define connectors each time when they should just be able to copy them and then move them around by their end points.

I then created a brand new drawing, tried to recreate the problem, and could not recreate it. Now that I have one drawing that reproduces the problem and another that doesn't, I'm going to look at the SVG, exploit the differences, and find the causative factor. If/when I figure it out I'll report back. Meanwhile, if anyone has any new information, please let me know.

Thanks

Steve Litt
http://www.troubleshooters.com

Steve Litt (slitt) wrote :

I'm using Inkscape 0.47pre4 r22446 (Oct 14 2009) on Ubuntu 9.10 . I can reproduce my symptom at will now. Here's how:

*Run inkscape
 (You're now in a new inkscape drawing)
* Use the diagram connector tool to make a connector, let's say 2 inches long
* Click the select and transform objects tool
* Select the connector you made
* Ctrl+D
* Shift+Right several times, noting the duplicate moves horizontally as expected
* Press Del to delete the dup
* File->Document_properties, change to landscape
* Click the select and transform objects tool
* Select the connector you made
* Ctrl+D
* Shift+Right several times, noting the duplicate moves VERTICALLY, which is bizarre and unexpected

MECHANISM OF THIS ANOMOLY
When you change the paper orientation, it puts a "transform="translate(0,-308.2677)" attribute within the <g> node. If you remove that attribute, the anomoly goes away. If you put the attribute back, the anomoly returns.

WORKAROUND
When starting a new document, do any paper size and orientation settings immediately on the blank line, then remove all transform=translate attributes.

I'm at slitt at troubleshooters.com. If anyone responds, please email me to let me know you've responded.

Thanks

Steve Litt

John Doe (b2109455) wrote :

I think what I have experienced is related. Steps to reproduce:

Create a new document.
Resize the document in any way.
Create a connector (not connected to anything).
Try to move that connector.

The connector will not move as expected. Perhaps connectors that don't connect to anything aren't supposed to be made, but if that is the case, the program should require I have an endpoint in a shape to draw it in the first place.

~suv (suv-lp) on 2010-10-23
tags: added: groups transformations
summary: - Moving shape with connectors, connectors go wild
+ Moving shape with connectors, disconnected ends of connectors go wild
~suv (suv-lp) wrote :

No longer reproduced in Inkscape 0.48+devel r9989 on OS X 10.5.8

(fixed with r9988)

~suv (suv-lp) on 2010-12-29
Changed in inkscape:
milestone: none → 0.48.1
status: Confirmed → Fix Committed
jazzynico (jazzynico) on 2011-03-05
Changed in inkscape:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Bug attachments