patch 8.2.2560: setting 'winminheigt' does not take tabline into account

Problem:    Setting 'winminheigt' does not take tabline into account.
Solution:   Subtract the tabline from the available height. (closes #7899)
diff --git a/src/testdir/test_options.vim b/src/testdir/test_options.vim
index 23e0de4..2595392 100644
--- a/src/testdir/test_options.vim
+++ b/src/testdir/test_options.vim
@@ -1015,6 +1015,26 @@
   set winheight&
 endfunc
 
+func Test_opt_winminheight_term()
+  CheckRunVimInTerminal
+
+  " The tabline should be taken into account.
+  let lines =<< trim END
+    set wmh=0 stal=2
+    below sp | wincmd _
+    below sp | wincmd _
+    below sp | wincmd _
+    below sp
+  END
+  call writefile(lines, 'Xwinminheight')
+  let buf = RunVimInTerminal('-S Xwinminheight', #{rows: 11})
+  call term_sendkeys(buf, ":set wmh=1\n")
+  call WaitForAssert({-> assert_match('E36: Not enough room', term_getline(buf, 11))})
+
+  call StopVimInTerminal(buf)
+  call delete('Xwinminheight')
+endfunc
+
 " Test for the 'winminwidth' option
 func Test_opt_winminwidth()
   only!
diff --git a/src/version.c b/src/version.c
index 67fc08c..7f1e818 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2560,
+/**/
     2559,
 /**/
     2558,
diff --git a/src/window.c b/src/window.c
index 58a216d..a810a6a 100644
--- a/src/window.c
+++ b/src/window.c
@@ -5860,7 +5860,7 @@
     // loop until there is a 'winminheight' that is possible
     while (p_wmh > 0)
     {
-	room = Rows - p_ch;
+	room = Rows - p_ch - tabline_height();
 	needed = frame_minheight(topframe, NULL);
 	if (room >= needed)
 	    break;