diff --git a/src/select.c b/src/select.c index 1b8df43d..33f2b641 100644 --- a/src/select.c +++ b/src/select.c @@ -976,14 +976,16 @@ void select_element(int i,unsigned short select_mode, int fast, int override_loc } xctx->inst[i].sel = select_mode; if(select_mode == SELECTED) set_first_sel(ELEMENT, i, 0); - if(select_mode) { - for(c=0;cgc[SELLAYER], i,c,0,0,0.0,0.0); - } - } else { - symbol_bbox(i, &xctx->inst[i].x1, &xctx->inst[i].y1, &xctx->inst[i].x2, &xctx->inst[i].y2 ); - for(c=0;cgctiled, i,c,0,0,0.0,0.0); + if(!fast) { + if(select_mode) { + for(c=0;cgc[SELLAYER], i,c,0,0,0.0,0.0); + } + } else { + symbol_bbox(i, &xctx->inst[i].x1, &xctx->inst[i].y1, &xctx->inst[i].x2, &xctx->inst[i].y2 ); + for(c=0;cgctiled, i,c,0,0,0.0,0.0); + } } } xctx->need_reb_sel_arr=1; diff --git a/src/traversal.tcl b/src/traversal.tcl index 05fb1bdf..313bbd77 100644 --- a/src/traversal.tcl +++ b/src/traversal.tcl @@ -73,7 +73,7 @@ proc hier_traversal {fd {level 0} only_subckts} { set ninst [lindex [split [xschem expandlabel $instname] { }] 1] for {set n 1} {$n <= $ninst} { incr n} { # set dp 0 - xschem select instance $i + xschem select instance $i fast # descending ninst times is extremely inefficient set descended [xschem descend $n notitle] # ensure previous descend was successful