pcb

with 'text only' option enabled, can't drag-move sel text

Bug #699181 reported by Ben Jackson on 2007-07-11
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
gEDA project
Medium
Unassigned
pcb
Medium
Bert Timmerman

Bug Description

If you go to 'text only' mode to move identifiers around, you can click+drag move them. But if you click (and cause them to be selected), then you can't move them.

I would assume you also can't move multiple texts because of this.

DJ Delorie (djdelorie) wrote :

I can't move selected refdes's even if neither lock-names nor only-names is active.

Andrew Poelstra (asp11) wrote :

I have attached a patch that fixes the bug, but I do not understand the consequences of it. Its effect is to get rid of Note.Moving (well, get rid of the only place where it is set to 'true'). What was the point of this variable and why do we set it?

Interestingly, this patch also fixes bug 907827.

Bert Timmerman (bert-timmerman) wrote :

Hi Andrew and all,

I have pushed a topic branch "LP699181" onto git://git.geda-project.org/pcb with the above mentioned patch.

Please "git fetch", "git checkout -b LP699181" and test this patch for unwanted side effects and the not understood consequences of it.

There lies an opportunity in here to squash two bugs with the effort of one.

Kind regards,

Bert Timmerman.

Changed in pcb:
status: New → In Progress
Changed in pcb:
assignee: nobody → Bert Timmerman (bert-timmerman)
Traumflug (mah-jump-ing) wrote :

Playing around with this bug a bit, I see PCB apparently has pretty different behaviour on wether something is selected or not. One can drag selected tracks, but it's done differently than dragging something not selected. One time an outline is drawn while dragging, the other time only a centerline.

After applying the patch given here, as far as I can see, dragging always behaves as if there's nothing selected. Unfortunately this also means only a single track is dragged when multiple ones are selected.

To me it looks like there's too much distinction between dragging with something selected and dragging without.

Traumflug (mah-jump-ing) wrote :

Tracking down things further, I think the next key in this adventure is click_cb() in action.c. This is called a moment after mouse down and does a decision:

- If the click isn't onto something selected, but onto something movable (Note.Moving == false, Note.Hit == true), mode is set away from ARROW_MODE to COPY_MODE or MOVE_MODE, both of which start moving something and draw an outline around tracks while doing so.

- If the click _is_ onto something selected (Note.Moving == true), instead of COPY/MOVE_MODE, PASTEBUFFER_MODE is engaged. Before doing so, the selected item is added to the pastebuffer, of course.

Both of these mode changes cause totally different behaviour in NotifyMode().

So, one question arising is: why is there a Copy mode if it's used for single copies, only? Looks like unneccessary code duplication. Move mode is required for dragging line ends.

The cause of this bug has probably to be searched in the question: why doesn't pastebuffer mode move names/refdes'? It does move independent texts.

Traumflug (mah-jump-ing) on 2015-09-27
Changed in geda-project:
importance: Undecided → Medium
status: New → In Progress
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers