Index: trunk/src/action_helper.c =================================================================== --- trunk/src/action_helper.c (revision 3349) +++ trunk/src/action_helper.c (revision 3350) @@ -792,8 +792,7 @@ if (conf_core.editor.swap_start_direction) { - int line_refraction = conf_core.editor.line_refraction; - conf_setf(CFR_DESIGN,"editor/line_refraction", -1, "%d", line_refraction ^= 3); + conf_setf(CFR_DESIGN,"editor/line_refraction", -1, "%d",conf_core.editor.line_refraction ^ 3); } } if (conf_core.editor.orthogonal_moves) { Index: trunk/src/line.c =================================================================== --- trunk/src/line.c (revision 3349) +++ trunk/src/line.c (revision 3350) @@ -437,8 +437,10 @@ if (XOR(r1 > r2, shift)) { if (conf_core.editor.line_refraction != 0) { if (shift) { - conf_setf(CFR_DESIGN, "editor/line_refraction", -1, "%d", 2); - printf("line_refraction is set to: %d\n", conf_core.editor.line_refraction); + if (conf_core.editor.line_refraction==1) { + conf_setf(CFR_DESIGN, "editor/line_refraction", -1, "%d", 2); + printf("line_refraction is set to: %d\n", conf_core.editor.line_refraction); + } } else{ conf_setf(CFR_DESIGN, "editor/line_refraction", -1, "%d", 1); @@ -451,8 +453,10 @@ else { if (conf_core.editor.line_refraction !=0) { if (shift) { + if (conf_core.editor.line_refraction==2) { conf_setf(CFR_DESIGN, "editor/line_refraction", -1, "%d", 1); printf("line_refraction is set to: %d\n", conf_core.editor.line_refraction); + } } else{ conf_setf(CFR_DESIGN, "editor/line_refraction", -1, "%d", 2);