diff --git a/doc/xschem_man/commands.html b/doc/xschem_man/commands.html index ff0bd546..6e296034 100644 --- a/doc/xschem_man/commands.html +++ b/doc/xschem_man/commands.html @@ -85,7 +85,7 @@ Ctrl + RightButton Select object under the mouse and if label/pin select attached nets up to net junctions LeftButton Double click Terminate Polygon placement - + Edit object attributes XSCHEM KEY BINDINGS ---------------------------------------------------------------------- diff --git a/src/callback.c b/src/callback.c index cbc79fed..c9ad1bbe 100644 --- a/src/callback.c +++ b/src/callback.c @@ -2584,18 +2584,23 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key, if( waves_selected(event, state, button)) { waves_callback(event, mx, my, key, button, aux, state); break; - } - if(xctx->semaphore >= 2) break; - dbg(1, "callback(): DoubleClick ui_state=%d state=%d\n",xctx->ui_state,state); - if(button==Button1) { - if(xctx->ui_state == STARTWIRE) { - xctx->ui_state &= ~STARTWIRE; - } - if(xctx->ui_state == STARTLINE) { - xctx->ui_state &= ~STARTLINE; - } - if( (xctx->ui_state & STARTPOLYGON) && (state ==0 ) ) { - new_polygon(SET); + } else { + if(xctx->semaphore >= 2) break; + dbg(1, "callback(): DoubleClick ui_state=%d state=%d\n",xctx->ui_state,state); + if(button==Button1) { + if(xctx->ui_state == 0 || xctx->ui_state == SELECTION) { + edit_property(0); + } else { + if(xctx->ui_state & STARTWIRE) { + xctx->ui_state &= ~STARTWIRE; + } + if(xctx->ui_state & STARTLINE) { + xctx->ui_state &= ~STARTLINE; + } + if( (xctx->ui_state & STARTPOLYGON) && (state ==0 ) ) { + new_polygon(SET); + } + } } } #ifndef __unix__ diff --git a/src/findnet.c b/src/findnet.c index 2ac5dbf9..ef0029d0 100644 --- a/src/findnet.c +++ b/src/findnet.c @@ -268,9 +268,8 @@ static void find_closest_element(double mx,double my) dbg(2, "find_closest_element(): finding closest element, instances=%d, dist=%.16g\n",i,tmp); } } /* end for i */ - if( r!=-1 ) - { - sel.n = r; sel.type = ELEMENT; + if( r!=-1 && strcmp(get_tok_value(xctx->inst[r].prop_ptr, "lock", 0), "true") ) { + sel.n = r; sel.type = ELEMENT; } } diff --git a/src/keys.help b/src/keys.help index 441e39b5..0b268684 100644 --- a/src/keys.help +++ b/src/keys.help @@ -44,6 +44,7 @@ Ctrl + RightButton Select object under the mouse and if label/pin select attached nets up to net junctions LeftButton Double click Terminate Polygon placement + Edit object attributes XSCHEM KEY BINDINGS