diff src/gui.c @ 797:a1a08851eac8

updated for version 7.0232
author vimboss
date Thu, 23 Mar 2006 22:47:08 +0000
parents b5aed52a4881
children 9f345c48220b
line wrap: on
line diff
--- a/src/gui.c
+++ b/src/gui.c
@@ -3203,7 +3203,11 @@ gui_init_which_components(oldval)
 	using_tabline = gui_has_tabline();
 	if (!gui_mch_showing_tabline() != !using_tabline)
 	{
+	    /* We don't want a resize event change "Rows" here, save and
+	     * restore it.  Resizing is handled below. */
+	    i = Rows;
 	    gui_update_tabline();
+	    Rows = i;
 	    need_set_size = TRUE;
 	    if (using_tabline)
 		fix_size = TRUE;
@@ -3354,12 +3358,19 @@ gui_has_tabline()
 gui_update_tabline()
 {
     int	    showit = gui_has_tabline();
+    int	    shown = gui_mch_showing_tabline();
 
     if (!gui.starting && starting == 0)
     {
-	gui_mch_show_tabline(showit);
+	if (!showit != !shown)
+	    gui_mch_show_tabline(showit);
 	if (showit != 0)
 	    gui_mch_update_tabline();
+
+	/* When the tabs change from hidden to shown or from shown to
+	 * hidden the size of the text area should remain the same. */
+	if (!showit != !shown)
+	    gui_set_shellsize(FALSE, showit);
     }
 }