report compile options in `xschem globals` command, more precisely calculate deleted object bboxes (recalculate at current zoom level due to text size roudings) to avoid some small leftover graphics after deletion

This commit is contained in:
Stefan Frederik 2021-12-04 11:23:38 +01:00
parent 8832830d91
commit 9afce9efee
2 changed files with 39 additions and 3 deletions

View File

@ -1089,6 +1089,37 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
my_snprintf(res, S(res), "need_reb_sel_arr=%d\n", xctx->need_reb_sel_arr); Tcl_AppendResult(interp, res, NULL);
my_snprintf(res, S(res), "undo_type=%d\n", xctx->undo_type); Tcl_AppendResult(interp, res, NULL);
my_snprintf(res, S(res), "******* end global variables:*******\n"); Tcl_AppendResult(interp, res, NULL);
my_snprintf(res, S(res), "******* Compile options:*******\n"); Tcl_AppendResult(interp, res, NULL);
#ifdef HAS_DUP2
my_snprintf(res, S(res), "HAS_DUP2=%d\n", HAS_DUP2); Tcl_AppendResult(interp, res, NULL);
#endif
#ifdef HAS_PIPE
my_snprintf(res, S(res), "HAS_PIPE=%d\n", HAS_PIPE); Tcl_AppendResult(interp, res, NULL);
#endif
#ifdef HAS_POPEN
my_snprintf(res, S(res), "HAS_POPEN=%d\n", HAS_POPEN); Tcl_AppendResult(interp, res, NULL);
#endif
#ifdef HAS_XRENDER
my_snprintf(res, S(res), "HAS_XRENDER=%d\n", HAS_XRENDER); Tcl_AppendResult(interp, res, NULL);
#endif
#ifdef HAS_CAIRO
my_snprintf(res, S(res), "HAS_CAIRO=%d\n", HAS_CAIRO); Tcl_AppendResult(interp, res, NULL);
#endif
#ifdef HAS_XCB
my_snprintf(res, S(res), "HAS_XCB=%d\n", HAS_XCB); Tcl_AppendResult(interp, res, NULL);
#endif
#ifdef XSCHEM_SHAREDIR
my_snprintf(res, S(res), "XSCHEM_SHAREDIR=%s\n", XSCHEM_SHAREDIR); Tcl_AppendResult(interp, res, NULL);
#endif
#ifdef PREFIX
my_snprintf(res, S(res), "PREFIX=%s\n", PREFIX); Tcl_AppendResult(interp, res, NULL);
#endif
#ifdef USER_CONF_DIR
my_snprintf(res, S(res), "USER_CONF_DIR=%s\n", USER_CONF_DIR); Tcl_AppendResult(interp, res, NULL);
#endif
#ifdef XSCHEM_LIBRARY_PATH
my_snprintf(res, S(res), "XSCHEM_LIBRARY_PATH=%s\n", XSCHEM_LIBRARY_PATH); Tcl_AppendResult(interp, res, NULL);
#endif
}
else if(!strcmp(argv[1],"go_back"))

View File

@ -329,7 +329,9 @@ void delete(int to_push_undo)
if(to_push_undo && xctx->lastsel) xctx->push_undo();
/* first calculate bbox, because symbol_bbox() needs translate (@#0:net_name) which
* needs prepare_netlist_structs which needs a consistent xctx->inst[] data structure */
find_inst_to_be_redrawn(1 + 32); /* 32: call prepare_netlist_structs(0) */
find_inst_to_be_redrawn(1 + 4 + 32); /* 32: call prepare_netlist_structs(0) if show net names enabled
* 4: call symbol_bbox() to precisely update bbox to current zoom level
*/
for(i=0;i<xctx->texts;i++)
{
if(xctx->text[i].sel == SELECTED)
@ -434,8 +436,11 @@ void delete(int to_push_undo)
propagate_hilights(1, 1, XINSERT_NOREPLACE);
}
prepare_netlist_structs(0);
find_inst_to_be_redrawn(2 + 4 + 8);
find_inst_to_be_redrawn(2 + 8 + 32); /* 32: call prepare_netlist_structs(0)
* 2: add previously built list
* 4: call symbol_bbox to precisely update bboxes <<< needed?
* 8: do not iterate over selection (there is no more selection, deleted)
*/
find_inst_to_be_redrawn(16); /* clear data */
xctx->lastsel = 0;
bbox(SET , 0.0 , 0.0 , 0.0 , 0.0);