diff --git a/doc/xschem_man/commands.html b/doc/xschem_man/commands.html
index 44a977d9..d0809624 100644
--- a/doc/xschem_man/commands.html
+++ b/doc/xschem_man/commands.html
@@ -128,8 +128,9 @@ ctrl Enter Confirm closing dialog boxes
- Up Move up
ctrl Left Previous tab (if tabbed interface enabled)
ctrl Right Next tab (if tabbed interface enabled)
-ctrl+shift Tab Previous tab (if tabbed interface enabled)
-ctrl Tab Next tab (if tabbed interface enabled)
+shift Tab Right tab (if tabbed interface enabled)
+ctrl+shift Tab Left tab (if tabbed interface enabled)
+ctrl Tab Previous tab (if tabbed interface enabled)
- ':' Toggle flat netlist
- '\' Toggle fullscreen
- '!' Break selected wires at any wire or component pin
diff --git a/src/callback.c b/src/callback.c
index e55898d0..cce952bc 100644
--- a/src/callback.c
+++ b/src/callback.c
@@ -3848,6 +3848,14 @@ static void handle_key_press(int event, KeySym key, int state, int rstate, int m
tcleval("prev_tab");
xctx->semaphore = save;
}
+ else if(state == ShiftMask) {
+ int save = xctx->semaphore;
+ if(xctx->semaphore >= 2) break;
+ xctx->semaphore = 0;
+ tcleval("next_tab");
+ xctx->semaphore = save;
+ }
+
break;
case XK_Right:
diff --git a/src/keys.help b/src/keys.help
index 295b2ad6..f34ec7a4 100644
--- a/src/keys.help
+++ b/src/keys.help
@@ -69,8 +69,9 @@ ctrl Enter Confirm closing dialog boxes
- Up Move up
ctrl Left Previous tab (if tabbed interface enabled)
ctrl Right Next tab (if tabbed interface enabled)
-ctrl+shift Tab Previous tab (if tabbed interface enabled)
-ctrl Tab Next tab (if tabbed interface enabled)
+shift Tab Right tab (if tabbed interface enabled)
+ctrl+shift Tab Left tab (if tabbed interface enabled)
+ctrl Tab Previous tab (if tabbed interface enabled)
- ':' Toggle flat netlist
- '\' Toggle fullscreen
- '!' Break selected wires at any wire or component pin
diff --git a/src/xschem.tcl b/src/xschem.tcl
index d5b2aaf0..c29c5d43 100644
--- a/src/xschem.tcl
+++ b/src/xschem.tcl
@@ -570,10 +570,9 @@ proc get_running_cmds {} {
# pause for $del_ms milliseconds, keep event loop responsive
proc delay {del_ms} {
- global delay_flag
- after $del_ms {set delay_flag 1}
- vwait delay_flag
- unset delay_flag
+ after $del_ms {set tctx::delay_flag 1}
+ vwait tctx::delay_flag
+ unset tctx::delay_flag
}
#### Scrollable frame
@@ -1412,7 +1411,7 @@ proc ngspice::get_voltage {n} {
proc update_schematic_header {} {
set tctx::retval [xschem get header_text]
- text_line {Header/License text:} 0
+ text_line {Header/License text:} 0 header
if { $tctx::rcode ne {}} {
xschem set header_text $tctx::retval
}
@@ -6691,6 +6690,8 @@ proc text_line {txtlabel clear {preserve_disabled disabled} } {
global text_line_default_geometry preserve_unchanged_attrs wm_fix tabstop
global debug_var text_tabs_setting
+ set buttonstate $preserve_disabled
+ if {$preserve_disabled eq {header}} { set buttonstate {disabled}}
if {$preserve_disabled eq {disabled}} {
set tctx::selected_mode [xschem get netlist_type]
@@ -6784,12 +6785,14 @@ proc text_line {txtlabel clear {preserve_disabled disabled} } {
label .dialog.f1.r6 -text {Mode:}
ttk::combobox .dialog.f1.r7 -values $mode_list -textvariable tctx::selected_mode -width 14
}
- label .dialog.f1.r4 -text { Edit Attr:}
- ttk::combobox .dialog.f1.r5 -values $tok_list -textvariable tctx::selected_tok -width 14
+ if { $preserve_disabled ne {header} } {
+ label .dialog.f1.r4 -text { Edit Attr:}
+ ttk::combobox .dialog.f1.r5 -values $tok_list -textvariable tctx::selected_tok -width 14
+ }
}
checkbutton .dialog.f0.l2 -text "preserve unchanged props" -variable preserve_unchanged_attrs \
- -state $preserve_disabled
+ -state $buttonstate
pack .dialog.f0 -fill x
pack .dialog.f0.l2 -side left
pack .dialog.f0.l1 -side left -expand yes
@@ -6799,8 +6802,10 @@ proc text_line {txtlabel clear {preserve_disabled disabled} } {
pack .dialog.f1.b3 -side left -fill x -expand yes
pack .dialog.f1.b4 -side left -fill x -expand yes
if { [info tclversion] > 8.4} {
+ if { $preserve_disabled ne {header} } {
pack .dialog.f1.r4 -side left
pack .dialog.f1.r5 -side left
+ }
if {$preserve_disabled eq {disabled}} {
pack .dialog.f1.r6 -side left
pack .dialog.f1.r7 -side left
@@ -6817,7 +6822,7 @@ proc text_line {txtlabel clear {preserve_disabled disabled} } {
}
}
- if { [info tclversion] > 8.4} {
+ if { $preserve_disabled ne {header} && [info tclversion] > 8.4} {
bind .dialog.f1.r5 <> {
if {$tctx::old_selected_tok ne $tctx::selected_tok} {
if { $tctx::old_selected_tok eq {} } {
@@ -8572,7 +8577,7 @@ set tctx::global_list {
auto_hilight_graph_nodes autofocus_mainwindow autotrim_wires bespice_listen_port big_grid_points
bus_replacement_char cadence_compat cadgrid cadlayers cadsnap cairo_font_name cairo_font_scale
change_lw color_ps compare_sch constr_mv copy_cell crosshair_layer crosshair_size cursor_2_hook
- custom_label_prefix custom_token dark_colors dark_colorscheme dark_gui_colorscheme delay_flag
+ custom_label_prefix custom_token dark_colors dark_colorscheme dark_gui_colorscheme
dim_bg dim_value disable_unique_names do_all_inst draw_crosshair draw_grid draw_grid_axes
draw_window edit_prop_pos edit_prop_size edit_symbol_prop_new_sel editprop_sympath
en_hilight_conn_inst enable_dim_bg enable_stretch env(PDK) env(PDK_ROOT)
@@ -8591,7 +8596,7 @@ set tctx::global_list {
show_hidden_texts show_infowindow show_infowindow_after_netlist simconf_default_geometry
simconf_vpos simulate_bg snap_cursor snap_cursor_size spiceprefix split_files svg_colors
svg_font_name sym_txt symbol symbol_width tabstop tclcmd_txt tclstop
- tctx::colors tctx::hsize
+ tctx::colors tctx::delay_flag tctx::hsize
tctx::selected_mode tctx::old_selected_mode tctx::old_selected_tok tctx::selected_tok
tctx::rcode tctx::vsize tctx::tctx::retval tctx::retval_orig
text_line_default_geometry text_replace_selection text_tabs_setting
@@ -9787,6 +9792,19 @@ proc set_paths {} {
}
if {$pathlist eq {}} { set pathlist [pwd] }
set_initial_dirs
+
+ ## restore new recent component list...
+ ### ... first delete...
+ if {[info exists c_toolbar::c_t(n)]} {
+ for {set i 0} {$i < $c_toolbar::c_t(n)} {incr i} {
+ set c_toolbar::c_t($i,text) {}
+ set c_toolbar::c_t($i,command) {}
+ set c_toolbar::c_t($i,file) {}
+ }
+ }
+ # ... then reload.
+ set c_toolbar::c_t(hash) [xschem hash_string $::XSCHEM_LIBRARY_PATH]
+ load_recent_file
}
proc print_help_and_exit {} {
diff --git a/xschem_library/devices/bindkeys_cheatsheet.sym b/xschem_library/devices/bindkeys_cheatsheet.sym
index 093887bb..6cd185fb 100644
--- a/xschem_library/devices/bindkeys_cheatsheet.sym
+++ b/xschem_library/devices/bindkeys_cheatsheet.sym
@@ -463,8 +463,8 @@ T {-} 842.5 -126.25 0 0 0.18 0.18 {layer=7}
T {-} 842.5 -137.5 0 0 0.18 0.18 {layer=6}
T {Incr line width} 962.5 -366.25 0 0 0.18 0.18 {layer=6}
T {Set line width} 882.5 -366.25 0 0 0.18 0.18 {layer=7}
-T {Next Tab} 2.5 -263.75 0 0 0.18 0.18 {layer=12}
-T {Previous Tab} 2.5 -297.5 0 0 0.18 0.18 {layer=6}
+T {Right Tab} 2.5 -263.75 0 0 0.18 0.18 {layer=12}
+T {Left Tab} 2.5 -297.5 0 0 0.18 0.18 {layer=6}
T {Previous tab} 1222.5 -35 0 0 0.18 0.18 {layer=4}
T {Move left} 1222.5 -12.5 0 0 0.18 0.18 {}
T {Next tab} 1382.5 -35 0 0 0.18 0.18 {layer=4}
@@ -472,3 +472,4 @@ T {Move right} 1382.5 -12.5 0 0 0.18 0.18 {}
T {Move down} 1302.5 -12.5 0 0 0.18 0.18 {}
T {Move up} 1302.5 -92.5 0 0 0.18 0.18 {}
T {Open last file} 762.5 -297.5 0 0 0.18 0.18 {layer=6}
+T {Previous Tab} 2.5 -275 0 0 0.18 0.18 {layer=4}