Subject: Re: bug#4534: assertion failure at window.c:grow_mini_window

From: martin rudalics <[email-masked]>
Date: Thu, 24 Sep 2009 17:32:22 +0200

>>              shrink_mini_window (w);
 >>              ... should resize the mini_window down to one line ...
 >
 > That's exactly what happens, except that shrink_mini_window (w) does
 > *not* resize the miniwindow; it's still 6 lines height. So

Too bad.  Anyway, this configuration is completely useless to get the
original sizes back when we're done with the miniwindow.  Could you try
brute force as in the untested patch attached?

martin
*** xdisp.c.~1.1295.~	2009-08-20 10:47:19.687500000 +0200
--- xdisp.c	2009-09-24 17:23:23.937500000 +0200
***************
*** 8789,8816 ****
  	}
        else
  	{
! 	  /* Always resize to exact size needed.  */
! 	  if (height > WINDOW_TOTAL_LINES (w))
! 	    {
! 	      int old_height = WINDOW_TOTAL_LINES (w);
! 	      freeze_window_starts (f, 1);
! 	      grow_mini_window (w, height - WINDOW_TOTAL_LINES (w));
! 	      window_height_changed_p = WINDOW_TOTAL_LINES (w) != old_height;
! 	    }
! 	  else if (height < WINDOW_TOTAL_LINES (w))
! 	    {
! 	      int old_height = WINDOW_TOTAL_LINES (w);
! 	      freeze_window_starts (f, 0);
! 	      shrink_mini_window (w);
! 
! 	      if (height)
! 		{
! 		  freeze_window_starts (f, 1);
! 		  grow_mini_window (w, height - WINDOW_TOTAL_LINES (w));
! 		}
! 
! 	      window_height_changed_p = WINDOW_TOTAL_LINES (w) != old_height;
! 	    }
  	}
  
        if (old_current_buffer)
--- 8789,8799 ----
  	}
        else
  	{
! 	  int old_height = WINDOW_TOTAL_LINES (w);
! 	  freeze_window_starts (f, 1);
! 	  shrink_mini_window (w);
! 	  grow_mini_window (w, height - WINDOW_TOTAL_LINES (w));
! 	  window_height_changed_p = WINDOW_TOTAL_LINES (w) != old_height;
  	}
  
        if (old_current_buffer)