Index: trunk/src/tool.c =================================================================== --- trunk/src/tool.c (revision 12781) +++ trunk/src/tool.c (revision 12782) @@ -206,7 +206,7 @@ } } -void pcb_tool_attach_for_copy(pcb_coord_t PlaceX, pcb_coord_t PlaceY) +void pcb_tool_attach_for_copy(pcb_coord_t PlaceX, pcb_coord_t PlaceY, pcb_bool do_rubberband) { pcb_box_t box; pcb_coord_t mx = 0, my = 0; @@ -236,9 +236,9 @@ PCB->MaxHeight - (box.Y2 - pcb_crosshair.AttachedObject.Y)); /* get all attached objects if necessary */ - if ((conf_core.editor.mode != PCB_MODE_COPY) && conf_core.editor.rubber_band_mode) + if (do_rubberband && conf_core.editor.rubber_band_mode) pcb_event(PCB_EVENT_RUBBER_LOOKUP_LINES, "ippp", pcb_crosshair.AttachedObject.Type, pcb_crosshair.AttachedObject.Ptr1, pcb_crosshair.AttachedObject.Ptr2, pcb_crosshair.AttachedObject.Ptr3); - if (conf_core.editor.mode != PCB_MODE_COPY && + if (do_rubberband && (pcb_crosshair.AttachedObject.Type == PCB_TYPE_ELEMENT || pcb_crosshair.AttachedObject.Type == PCB_TYPE_VIA || pcb_crosshair.AttachedObject.Type == PCB_TYPE_LINE || pcb_crosshair.AttachedObject.Type == PCB_TYPE_LINE_POINT)) Index: trunk/src/tool.h =================================================================== --- trunk/src/tool.h (revision 12781) +++ trunk/src/tool.h (revision 12782) @@ -78,7 +78,7 @@ /**** tool helper functions ****/ -void pcb_tool_attach_for_copy(pcb_coord_t PlaceX, pcb_coord_t PlaceY); +void pcb_tool_attach_for_copy(pcb_coord_t PlaceX, pcb_coord_t PlaceY, pcb_bool do_rubberband); void pcb_tool_notify_block(void); /* create first or second corner of a marked block (when clicked) */ Index: trunk/src/tool_arrow.c =================================================================== --- trunk/src/tool_arrow.c (revision 12781) +++ trunk/src/tool_arrow.c (revision 12782) @@ -84,7 +84,7 @@ box.Y2 = Note.Y - PCB_SLOP * pcb_pixel_slop; pcb_crosshair.drags = pcb_list_block(PCB, &box, &pcb_crosshair.drags_len); pcb_crosshair.drags_current = 0; - pcb_tool_attach_for_copy(Note.X, Note.Y); + pcb_tool_attach_for_copy(Note.X, Note.Y, pcb_true); } else { pcb_box_t box; Index: trunk/src/tool_copy.c =================================================================== --- trunk/src/tool_copy.c (revision 12781) +++ trunk/src/tool_copy.c (revision 12782) @@ -48,7 +48,7 @@ pcb_search_screen(Note.X, Note.Y, types, &pcb_crosshair.AttachedObject.Ptr1, &pcb_crosshair.AttachedObject.Ptr2, &pcb_crosshair.AttachedObject.Ptr3); if (pcb_crosshair.AttachedObject.Type != PCB_TYPE_NONE) { - pcb_tool_attach_for_copy(Note.X, Note.Y); + pcb_tool_attach_for_copy(Note.X, Note.Y, pcb_false); } break; } Index: trunk/src/tool_move.c =================================================================== --- trunk/src/tool_move.c (revision 12781) +++ trunk/src/tool_move.c (revision 12782) @@ -54,7 +54,7 @@ pcb_crosshair.AttachedObject.Type = PCB_TYPE_NONE; } else - pcb_tool_attach_for_copy(Note.X, Note.Y); + pcb_tool_attach_for_copy(Note.X, Note.Y, pcb_true); } break; }