diff --git a/doc/xschem_man/commands.html b/doc/xschem_man/commands.html index 2ff54b54..44a977d9 100644 --- a/doc/xschem_man/commands.html +++ b/doc/xschem_man/commands.html @@ -215,6 +215,7 @@ ctrl 'n' Clear schematic ctrl+shift 'N' Clear symbol shift 'O' Toggle Light / Dark colorscheme shift+ctrl 'O' Load most recent file +alt 'o' Open file in a new tab / window ctrl 'o' Open file - 'p' Place polygon. Operation ends by placing last point over first. alt 'p' Add symbol pin @@ -236,6 +237,7 @@ ctrl 's' Save schematic alt 's' Reload current schematic from disk ctrl+alt 's' Save-as symbol - 't' Place text +ctrl 't' create new tab or window shift 'T' Toggle *_ignore flag on selected instances alt 'u' Align to current grid selected objects ctrl 'u' Unselect attached floater objects diff --git a/doc/xschem_man/developer_info.html b/doc/xschem_man/developer_info.html index 024575ac..b84a8a3c 100644 --- a/doc/xschem_man/developer_info.html +++ b/doc/xschem_man/developer_info.html @@ -1148,6 +1148,7 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns" switch: switch context to specified 'win_path' window or specified schematic name If 'draw' is given and set to 0 do not redraw after switching tab (only tab i/f) + if win_path set to "previous" switch to previous schematic. Main window/tab has win_path set to .drw, Additional windows/tabs have win_path set to .x1.drw, .x2.drw and so on...
  • only_probes
  • diff --git a/src/callback.c b/src/callback.c
    index 84bd5920..6f02f6c9 100644
    --- a/src/callback.c
    +++ b/src/callback.c
    @@ -3454,10 +3454,15 @@ static void handle_key_press(int event, KeySym key, int state, int rstate, int m
             }
           }
           else if(rstate & ControlMask) {
    +        int save = xctx->semaphore;
             if(waves_selected(event, key, state, button)) {
               waves_callback(event, mx, my, key, button, aux, state);
               break; 
             }
    +        if(xctx->semaphore >= 2) break;
    +        xctx->semaphore = 0;
    +        new_schematic("create", NULL, NULL, 1);
    +        xctx->semaphore = save;
           }
           break;
     
    diff --git a/src/keys.help b/src/keys.help
    index 66fe81cf..295b2ad6 100644
    --- a/src/keys.help
    +++ b/src/keys.help
    @@ -156,6 +156,7 @@ ctrl        'n'         Clear schematic
     ctrl+shift  'N'         Clear symbol
     shift       'O'         Toggle Light / Dark colorscheme
     shift+ctrl  'O'         Load most recent file
    +alt         'o'         Open file in a new tab / window
     ctrl        'o'         Open file
     -           'p'         Place polygon. Operation ends by placing last point over first.
     alt         'p'         Add symbol pin
    @@ -177,6 +178,7 @@ ctrl        's'         Save schematic
     alt         's'         Reload current schematic from disk
     ctrl+alt    's'         Save-as symbol
     -           't'         Place text
    +ctrl        't'         create new tab or window
     shift       'T'         Toggle *_ignore flag on selected instances
     alt         'u'         Align to current grid selected objects
     ctrl        'u'         Unselect attached floater objects
    diff --git a/src/scheduler.c b/src/scheduler.c
    index 7d321aab..6bcd8eef 100644
    --- a/src/scheduler.c
    +++ b/src/scheduler.c
    @@ -3579,6 +3579,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
          *     switch: switch context to specified 'win_path' window or specified schematic name
          *              If 'draw' is given and set to 0 do not redraw after switching tab
          *              (only tab i/f)
    +     *              if win_path set to "previous" switch to previous schematic.
          *   Main window/tab has win_path set to .drw,
          *   Additional windows/tabs have win_path set to .x1.drw, .x2.drw and so on...
          */
    diff --git a/src/xschem.tcl b/src/xschem.tcl
    index 2083470b..fbc7bdef 100644
    --- a/src/xschem.tcl
    +++ b/src/xschem.tcl
    @@ -9065,7 +9065,8 @@ proc build_widgets { {topwin {} } } {
       $topwin.menubar.file add cascade -label "Open recent" -menu $topwin.menubar.file.recent
       menu $topwin.menubar.file.recent -tearoff 0 -takefocus 0
       setup_recent_menu $topwin
    -  $topwin.menubar.file add command -label {Create new window/tab} -command "xschem new_schematic create"
    +  $topwin.menubar.file add command -label {Create new window/tab} -command "xschem new_schematic create" \
    +     -accelerator {Ctrl+T}
     
       $topwin.menubar.file add command -label "Open selected schematic in new window" \
           -command "open_sub_schematic" -accelerator Alt+E
    diff --git a/xschem_library/devices/bindkeys_cheatsheet.sym b/xschem_library/devices/bindkeys_cheatsheet.sym
    index fad4107c..093887bb 100644
    --- a/xschem_library/devices/bindkeys_cheatsheet.sym
    +++ b/xschem_library/devices/bindkeys_cheatsheet.sym
    @@ -295,7 +295,7 @@ T {Simulate} 242.5 -172.5 0 0 0.18 0.18 {}
     T {Reload from file} 242.5 -206.25 0 0 0.18 0.18 {layer=7}
     T {Save As} 242.5 -217.5 0 0 0.18 0.18 {layer=6}
     T {Save as sym} 258.75 -228.75 0 0 0.18 0.18 {layer=10}
    -T {-} 442.5 -275 0 0 0.18 0.18 {layer=4}
    +T {New win/tab} 442.5 -275 0 0 0.18 0.18 {layer=4}
     T {Toggle ignore} 442.5 -263.75 0 0 0.18 0.18 {layer=12}
     T {Text} 442.5 -252.5 0 0 0.18 0.18 {}
     T {-} 442.5 -286.25 0 0 0.18 0.18 {layer=7}