Index: trunk/src/object_act.c =================================================================== --- trunk/src/object_act.c (revision 8682) +++ trunk/src/object_act.c (revision 8683) @@ -1038,6 +1038,12 @@ @item down Moves the layer down. +@item step+ +Moves the layer towards the end of its group's list. + +@item step- +Moves the layer towards the beginning of its group's list. + @item c Creates a new layer. @@ -1078,6 +1084,21 @@ return 1; new_top = new_index; } + else if (strncmp(argv[1], "step", 4) == 0) { + pcb_layer_t *l = CURRENT; + pcb_layer_group_t *g = pcb_get_layergrp(PCB, l->grp); + if (g == NULL) { + pcb_message(PCB_MSG_ERROR, "Invalid layer group\n"); + return 1; + } + switch(argv[1][4]) { + case '+': return pcb_layergrp_step_layer(g, pcb_layer_id(PCB->Data, l), +1); break; + case '-': return pcb_layergrp_step_layer(g, pcb_layer_id(PCB->Data, l), -1); break; + } + pcb_message(PCB_MSG_ERROR, "Invalid step direction\n"); + return 1; + } + else new_index = atoi(argv[1]); Index: trunk/src/pcb-menu-gtk.lht =================================================================== --- trunk/src/pcb-menu-gtk.lht (revision 8682) +++ trunk/src/pcb-menu-gtk.lht (revision 8683) @@ -242,8 +242,8 @@ - ha:Delete current layer = { action=MoveLayer(c,-1) } ha:Add new layer = { action=MoveLayer(-1,c) } - ha:Move current layer up = { action=MoveLayer(c,up) } - ha:Move current layer down= { action=MoveLayer(c,down) } + ha:Move current layer up = { action=MoveLayer(c,step-) } + ha:Move current layer down= { action=MoveLayer(c,step+) } } } ha:Full screen = { checked=editor/fullscreen; a=\\; action=fullscreen(toggle) } @@ -631,12 +631,12 @@ ha:Layer properties... = { action=EditLayer() } ha:Grouping... (layer preferences) = { action=DoWindows(Preferences, 1, "User PoV/Layers") } - - ha:Move up = { action=MoveLayer(c, up) } - ha:Move down = { action=MoveLayer(c, down) } + ha:Move up (within group) = { action=MoveLayer(c, step-) } + ha:Move down (within group) = { action=MoveLayer(c, step+) } - ha:Remove = { action=MoveLayer(c, -1) } ha:Insert new, before this layer = { action=MoveLayer(-1, c) } - ha:Insert new, after this layer = { action={ MoveLayer(-1, c); MoveLayer(c, down) } } + ha:Insert new, after this layer = { action={ MoveLayer(-1, c); MoveLayer(c, step+) } } } } # layer Index: trunk/src/pcb-menu-lesstif.lht =================================================================== --- trunk/src/pcb-menu-lesstif.lht (revision 8682) +++ trunk/src/pcb-menu-lesstif.lht (revision 8683) @@ -159,8 +159,8 @@ - ha:Delete current layer = { action=MoveLayer(c,-1) } ha:Add new layer = { action=MoveLayer(-1,c) } - ha:Move current layer up = { action=MoveLayer(c,up) } - ha:Move current layer down = { action=MoveLayer(c,down) } + ha:Move current layer up = { action=MoveLayer(c,step-) } + ha:Move current layer down = { action=MoveLayer(c,step+) } } } } Index: trunk/src/pcb-menu-mkey.lht =================================================================== --- trunk/src/pcb-menu-mkey.lht (revision 8682) +++ trunk/src/pcb-menu-mkey.lht (revision 8683) @@ -242,8 +242,8 @@ - ha:Delete current layer = { action=MoveLayer(c,-1) } ha:Add new layer = { action=MoveLayer(-1,c) } - ha:Move current layer up = { action=MoveLayer(c,up) } - ha:Move current layer down= { action=MoveLayer(c,down) } + ha:Move current layer up = { action=MoveLayer(c,step-) } + ha:Move current layer down= { action=MoveLayer(c,step+) } } } ha:Full screen = { checked=editor/fullscreen; a=\\; action=fullscreen(toggle) }