Index: trunk/doc/conf/tree/editor.html =================================================================== --- trunk/doc/conf/tree/editor.html (revision 7516) +++ trunk/doc/conf/tree/editor.html (revision 7517) @@ -23,6 +23,7 @@ draw_grid boolean 0 draw grid points all_direction_lines boolean 0 enable lines to all directions rubber_band_mode boolean 0 move, rotate use rubberband connections + rubber_band_keep_midlinedir boolean 0 keep line direction when a middle line is moved swap_start_direction boolean 0 change starting direction after each click show_drc boolean 0 show drc region on crosshair auto_drc boolean 0 when set, PCB doesn't let you place copper that violates DRC. Index: trunk/src/conf_core.h =================================================================== --- trunk/src/conf_core.h (revision 7516) +++ trunk/src/conf_core.h (revision 7517) @@ -36,6 +36,7 @@ CFT_BOOLEAN draw_grid; /* draw grid points */ CFT_BOOLEAN all_direction_lines; /* enable lines to all directions */ CFT_BOOLEAN rubber_band_mode; /* move, rotate use rubberband connections */ + CFT_BOOLEAN rubber_band_keep_midlinedir; /* keep line direction when a middle line is moved */ CFT_BOOLEAN swap_start_direction; /* change starting direction after each click */ CFT_BOOLEAN show_drc; /* show drc region on crosshair */ CFT_BOOLEAN auto_drc; /* when set, PCB doesn't let you place copper that violates DRC. */ Index: trunk/src/pcb-conf.lht =================================================================== --- trunk/src/pcb-conf.lht (revision 7516) +++ trunk/src/pcb-conf.lht (revision 7517) @@ -47,6 +47,7 @@ all_direction_lines = 0 line_refraction = 1 rubber_band_mode = 0 + rubber_band_keep_midlinedir = 0 swap_start_direction = 0 show_drc = 0 auto_drc = 0 Index: trunk/src/pcb-menu-gtk.lht =================================================================== --- trunk/src/pcb-menu-gtk.lht (revision 7516) +++ trunk/src/pcb-menu-gtk.lht (revision 7517) @@ -263,6 +263,7 @@ ha:Libstroke gestures on middle button = { checked=editor/enable_stroke; action=conf(toggle, editor/enable_stroke, design) } - ha:Rubber band mode = { checked=editor/rubber_band_mode; action=conf(toggle, editor/rubber_band_mode, design) } + ha:Rubber band keeps middle line dir= { checked=editor/rubber_band_keep_midlinedir; action=conf(toggle, editor/rubber_band_keep_midlinedir, design) } ha:Require unique element names = { checked=editor/unique_names; action=conf(toggle, editor/unique_names, design) } ha:Auto-zero delta measurements = { checked=editor/local_ref; action=conf(toggle, editor/local_ref, design) } ha:New lines, arcs clear polygons = { checked=editor/clear_line; action=conf(toggle, editor/clear_line, design) } Index: trunk/src/pcb-menu-lesstif.lht =================================================================== --- trunk/src/pcb-menu-lesstif.lht (revision 7516) +++ trunk/src/pcb-menu-lesstif.lht (revision 7517) @@ -236,6 +236,7 @@ ha:Auto enforce DRC clearance = { checked=editor/auto_drc; action=conf(toggle, editor/auto_drc, design) } - ha:Rubber band mode = { checked=editor/rubber_band_mode; action=conf(toggle, editor/rubber_band_mode, design) } + ha:Rubber band keeps middle line dir= { checked=editor/rubber_band_keep_midlinedir; action=conf(toggle, editor/rubber_band_keep_midlinedir, design) } ha:Require unique element names = { checked=editor/unique_names; action=conf(toggle, editor/unique_names, design) } ha:Auto-zero delta measurements = { checked=editor/local_ref; action=conf(toggle, editor/local_ref, design) } ha:New lines, arcs clear polygons = { checked=editor/clear_line; action=conf(toggle, editor/clear_line, design) } Index: trunk/src/pcb-menu-mkey.lht =================================================================== --- trunk/src/pcb-menu-mkey.lht (revision 7516) +++ trunk/src/pcb-menu-mkey.lht (revision 7517) @@ -263,6 +263,7 @@ ha:Libstroke gestures on middle button = { checked=editor/enable_stroke; action=conf(toggle, editor/enable_stroke, design) } - ha:Rubber band mode = { checked=editor/rubber_band_mode; action=conf(toggle, editor/rubber_band_mode, design) } + ha:Rubber band keeps middle line dir= { checked=editor/rubber_band_keep_midlinedir; action=conf(toggle, editor/rubber_band_keep_midlinedir, design) } ha:Require unique element names = { checked=editor/unique_names; action=conf(toggle, editor/unique_names, design) } ha:Auto-zero delta measurements = { checked=editor/local_ref; action=conf(toggle, editor/local_ref, design) } ha:New lines, arcs clear polygons = { checked=editor/clear_line; action=conf(toggle, editor/clear_line, design) } Index: trunk/src_plugins/rubberband_orig/rubberband.c =================================================================== --- trunk/src_plugins/rubberband_orig/rubberband.c (revision 7516) +++ trunk/src_plugins/rubberband_orig/rubberband.c (revision 7517) @@ -902,6 +902,9 @@ pcb_coord_t *x = argv[3].d.p; /* Return argument */ pcb_coord_t *y = argv[4].d.p; /* Return argument */ + if (!conf_core.editor.rubber_band_keep_midlinedir) + return; + for (i=0; iRubberbandN; i++) { rbnd->Rubberband[i].delta_is_valid = 0; }