]> granicus.if.org Git - vim/commitdiff
patch 8.1.0972: cannot switch from terminal window to next tabpage v8.1.0972
authorBram Moolenaar <Bram@vim.org>
Fri, 22 Feb 2019 15:09:52 +0000 (16:09 +0100)
committerBram Moolenaar <Bram@vim.org>
Fri, 22 Feb 2019 15:09:52 +0000 (16:09 +0100)
Problem:    Cannot switch from terminal window to next tabpage.
Solution:   Make CTRL-W gt move to next tabpage.

runtime/doc/terminal.txt
src/testdir/test_terminal.vim
src/version.c
src/window.c

index da89be436266defa64d70747addf73e8e9a2824b..0181d18def6f10aeffca3061311e699132f0e39b 100644 (file)
@@ -1,4 +1,4 @@
-*terminal.txt* For Vim version 8.1.  Last change: 2019 Feb 16
+*terminal.txt* For Vim version 8.1.  Last change: 2019 Feb 22
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -80,6 +80,7 @@ Special in the terminal window:                       *CTRL-W_.*  *CTRL-W_N*
                        Also works with the = register to insert the result of
                        evaluating an expression.
        CTRL-W CTRL-C   ends the job, see below |t_CTRL-W_CTRL-C|
+       CTRL-W gt       go to next tabpage, same as `gt`
 
 See option 'termwinkey' for specifying another key instead of CTRL-W that
 will work like CTRL-W.  However, typing 'termwinkey' twice sends 'termwinkey'
index 32cc21256373fdd9961ca84d712f0ccb77486d25..ee50b570b29f32ee0da89588ed14ad98f9e7ff6d 100644 (file)
@@ -1571,6 +1571,8 @@ endfunc
 func Test_terminal_termwinkey()
   call assert_equal(1, winnr('$'))
   let thiswin = win_getid()
+  tabnew
+  tabnext
 
   let buf = Run_shell_in_terminal({})
   let termwin = bufwinid(buf)
@@ -1578,12 +1580,22 @@ func Test_terminal_termwinkey()
   call feedkeys("\<C-L>w", 'tx')
   call assert_equal(thiswin, win_getid())
   call feedkeys("\<C-W>w", 'tx')
+  call assert_equal(termwin, win_getid())
+
+  let tnr = tabpagenr()
+  call feedkeys("\<C-L>gt", "xt")
+  call assert_notequal(tnr, tabpagenr())
+  tabnext
+  call assert_equal(tnr, tabpagenr())
+  call assert_equal(termwin, win_getid())
 
   let job = term_getjob(buf)
   call feedkeys("\<C-L>\<C-C>", 'tx')
   call WaitForAssert({-> assert_equal("dead", job_status(job))})
 
   set termwinkey&
+  tabnext
+  tabclose
 endfunc
 
 func Test_terminal_out_err()
index 7c424e0d0a1498da12418078dc9986ed61eb1195..bd49a512ceaf71e24f5aaf8200f680ddfda1a4da 100644 (file)
@@ -779,6 +779,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    972,
 /**/
     971,
 /**/
index c4b543de39586779ea75e3b70574696f3c4464a4..83e3e9f935b855a32d10b7b47711a2aabf5a3271 100644 (file)
@@ -67,7 +67,7 @@ static win_T *win_alloc(win_T *after, int hidden);
 static char *m_onlyone = N_("Already only one window");
 
 /*
- * all CTRL-W window commands are handled here, called from normal_cmd().
+ * All CTRL-W window commands are handled here, called from normal_cmd().
  */
     void
 do_window(
@@ -584,6 +584,10 @@ wingotofile:
                        nchar = xchar;
                        goto wingotofile;
 #endif
+                   case 't':       // CTRL-W gt: go to next tab page
+                       goto_tabpage((int)Prenum);
+                       break;
+
                    default:
                        beep_flush();
                        break;