patch 9.1.1458: tabpanel: tabs not properly updated with 'stpl'

Problem:  tabpanel: tabs not properly updated with 'stpl'
Solution: remember the Column offset per tabpage
          (Hirohito Higashi)

fixes: #17519
closes: #17544

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/testdir/dumps/Test_tabpanel_stpl_eq_0_0.dump b/src/testdir/dumps/Test_tabpanel_stpl_eq_0_0.dump
new file mode 100644
index 0000000..8a25711
--- /dev/null
+++ b/src/testdir/dumps/Test_tabpanel_stpl_eq_0_0.dump
@@ -0,0 +1,10 @@
+| +8#0000001#e0e0e08|+| |[|N|o| |N|a|m|e|]| | +2#0000000#ffffff0|0@3| | +1&&@57|X+8#0000001#e0e0e08
+> +0#0000000#ffffff0@77
+|~+0#4040ff13&| @76
+|~| @76
+|~| @76
+|~| @76
+|~| @76
+|~| @76
+|~| @76
+| +0#0000000&@77
diff --git a/src/testdir/dumps/Test_tabpanel_stpl_eq_0_1.dump b/src/testdir/dumps/Test_tabpanel_stpl_eq_0_1.dump
new file mode 100644
index 0000000..2ed5307
--- /dev/null
+++ b/src/testdir/dumps/Test_tabpanel_stpl_eq_0_1.dump
@@ -0,0 +1,10 @@
+| +2&#ffffff0|+| |[|N|o| |N|a|m|e|]| | +8#0000001#e0e0e08|0@3| | +1#0000000#ffffff0@57|X+8#0000001#e0e0e08
+>a+0#0000000#ffffff0@2| @74
+|b@2| @74
+|c@2| @74
+|d@2| @74
+|~+0#4040ff13&| @76
+|~| @76
+|~| @76
+|~| @76
+| +0#0000000&@77
diff --git a/src/testdir/test_tabpanel.vim b/src/testdir/test_tabpanel.vim
index 959734f..0d79650 100644
--- a/src/testdir/test_tabpanel.vim
+++ b/src/testdir/test_tabpanel.vim
@@ -10,6 +10,25 @@
   set showtabpanel&
 endfunc
 
+function Test_tabpanel_showtabpanel_eq_0()
+  CheckScreendump
+
+  let lines =<< trim END
+    set showtabpanel=2
+    set noruler
+    call setbufline(bufnr(), 1, ['aaa','bbb','ccc','ddd'])
+    tabnew 0000
+  END
+  call writefile(lines, 'XTest_tabpanel_stpl_eq_0', 'D')
+
+  let buf = RunVimInTerminal('-S XTest_tabpanel_stpl_eq_0', {'rows': 10, 'cols': 78})
+  call term_sendkeys(buf, ":set showtabpanel=0\<CR>\<C-L>")
+  call VerifyScreenDump(buf, 'Test_tabpanel_stpl_eq_0_0', {})
+  call term_sendkeys(buf, ":tabnext\<CR>\<C-L>")
+  call VerifyScreenDump(buf, 'Test_tabpanel_stpl_eq_0_1', {})
+  call StopVimInTerminal(buf)
+endfunc
+
 function Test_tabpanel_showtabpanel_eq_1()
   CheckScreendump