Subject: bug#16209: 24.3.50; menubar not updated when exiting from splash screen

From: Eli Zaretskii <[email-masked]>
Date: Fri, 27 Dec 2013 21:13:33 +0200

> Date: Sat, 21 Dec 2013 16:36:52 +0900
> From: YAMAMOTO Mitsuharu <[email-masked]>
> 
> Steps to reproduce:
> 
> 1. $ emacs -q &
> 2. Type "q" to exit from the splash screen.
>    I'd expect that the new menu bar title "Lisp-Interaction" appears
>    for the *scratch* buffer.  But the titles in the menubar don't get
>    updated.

Stefan, this is a side effect of your commit 115377.  It includes this
change in set_window_buffer:

  @@ -3364,7 +3363,7 @@ set_window_buffer (Lisp_Object window, L
       }
     /* Maybe we could move this into the `if' but it's not obviously safe and
	I doubt it's worth the trouble.  */
  -  windows_or_buffers_changed = 28;
  +  wset_redisplay (w);

However, update_menu_bar only recomputes the menu bar under these
conditions:

      if (windows_or_buffers_changed
	  /* This used to test w->update_mode_line, but we believe
	     there is no need to recompute the menu in that case.  */
	  || update_mode_lines
	  || window_buffer_changed (w))
	{

I can easily fix this bug if I add a test for w->redisplay, but isn't
it too drastic to recompute the menu bar each time a window needs to
be redisplayed?

Perhaps we need a new flag, for when the buffer shown by the window is
changed?