Subject: Re: bug#18196: 24.4.50; crash when setting face background in terminal frame

From: Nicolas Avrutin <[email-masked]>
Date: Wed, 06 Aug 2014 13:59:43 -0400

Doesn't seem like my email went though because my screenshots were too
large. Let's try this again.

On Wed, Aug 06 2014, martin rudalics <[email-masked]> wrote:
> Might be.  I attached a new patch.  If you still see the problem please
> tell me the size of the terminal and maybe add a screenshot.  Can you
> type into the text window or the minibuffer when it happens?

The second issue is still there with the last patch. Interestingly
enough, I can only reproduce this with emacsclient, not emacs itself. I
don't see a difference with this issue between your second patch and
your third patch.

Steps to reproduce:
1. emacs -Q
2. M-: server-start
3. emacsclient -nw

The dimensions of the terminal with the emacsclient are 134 cols and 38
lines (according to tput cols and tput lines). The dimensions of the
terminal window (including scroll bar and 1px window border on all
sides) should be 960x540 (1/4 of a 1920x1080 screen). I don't know the
exact width of the scroll bar, so I can't easily give you the dimensions
of the "interior" of the terminal. I can also reproduce the issue with a
terminal smaller than this.

Screenshots:
1.png: emacs window on the left, terminal from which emacs was opened on
the top right, terminal with emacsclient -nw opened in the bottom right.
Notice that neither the next from the *scratch* buffer nor the menu bar
are visible.

2.png: I type "foo bar" in the emacsclient. The text appears in
emacsclient and the emacs window because they are both in the *scratch*
buffer. Notice how in the emacsclient, the buffer is marked as modified
on the line below the displayed modeline. The modeline is actually on
the bottom line, not on the second line from the bottom. The second line
is a static artifact.

3.png: I press M-: and type something in the minibuffer. It overwrites
the actual modeline on the bottom line, of which the modified buffer
marker was the only thing visible. Entering the minibuffer caused an
entry in the menubar to change. The new entry (Minibuf Help) is now visible.

4.png: I press C-g to exit the minibuffer then RET to advance to the
next line and then down arrow. The line number in the modeline (line 6)
is displayed on the last line, the same line as the echo area. The
menubar is updated.

5.png: I press C-SPC and up arrow to select the next on the first few
lines. The next becomes visible now.

6.png: I press C-g to cancel the selection. The text remains visible.

7.png: I press F10 to open the menu and then F10 again to close it. The
parts of the menubar that were redrawn when I did that (File part of
Edit) are visible now. I press C-x C-f and open a new file. Most of the
modeline is redrawn on the bottom line. The original location of the
modeline on the second to last has not been redrawn since openening the
emacsclient.

At any point, if I full-screen the terminal with the emacsclient, the
entire emacsclient gets redrawn and the display bugs disappear. If I
then restore the terminal to the smaller size, it continues to function
properly.

Thanks

-- 
Nicolas Avrutin