Subject: Re: bug#19721: 25.0.50; Mode-line not redrawn with expose events

From: YAMAMOTO Mitsuharu <[email-masked]>
Date: Mon, 02 Feb 2015 12:24:13 +0900

>>>>> On Sun, 01 Feb 2015 09:51:30 +0100, martin rudalics <[email-masked]> said:

>> If I apply both changes, mode-lines are redrawn when exposed, but some
>> of them are not updated with C-x o.

> What happens when you do something trivial like

> --- a/src/window.c
> +++ b/src/window.c
> @@ -524,6 +524,8 @@ select_window (Lisp_Object window, Lisp_Object norecord, int inhibit_point_swap)
>         record_buffer (w->contents);
>       }

> +  w->update_mode_line = 1;
> +
>     return window;
>   }

The result was similar to Eli's second patch.  With your patch alone,
the original problem remains.  With Eli's first patch, some of
mode-lines are not update with C-x o.

>>>>> On Sun, 01 Feb 2015 17:44:01 +0200, Eli Zaretskii <[email-masked]> said:

> So I'm not sure this is the right solution.  The situation described
> in this report is quite unique, in that the face used for the active
> mode line causes the window glyph matrices to be resized each time a
> window becomes non-selected one.  It is because of this resizing that
> the mode-line row of the current matrix becomes disabled.

I've experienced similar mode-line erasure without customization of
the mode-line face on the Mac port a few times (probably after
pixel-based mouse-wheel smooth scrolling over an inactive window).
But I couldn't find a way to reproducible it reliably.  The face
customization example was originally given by a user of the Mac port
as a part of a bug report I received.

				     YAMAMOTO Mitsuharu
				[email-masked]