Subject: Re: bug#23925: 25.0.95; display broken when maximizing frame

From: Clément Pit--Claudel <[email-masked]>
Date: Sat, 9 Jul 2016 11:45:36 +0200

On 2016-07-09 09:11, Eli Zaretskii wrote:
>> Date: Fri, 8 Jul 2016 22:02:23 -0500
>> From: "Roland Winkler" <[email-masked]>
>>
>>
>> After a long time I build again a more recent emacs.  Unfortunately
>> it gives me a rather unpleasant experience when maximizing the emacs
>> frame (using the maximize function of the xfce window manager):
>> somehow the frame is not redrawn properly, emacs seems to be unaware
>> of the new frame size and the minibuffer disappears completely.
>> Instead the desktop background is displayed in large parts of the
>> emacs frame.  Unmaximizing makes the problem go away.  But obviously
>> that is no solution.  I can provide more details if you let me know
>> what would be interesting.
> 
> Yes, please provide more details.  We are very interested, as we are
> close to releasing Emacs 25.1, of which 25.0.95 is the latest
> pretest.  What you told so far is disturbing, but doesn't give any
> clues where to look for the root cause of the trouble.  I don't think
> we've heard such reports in a long, long time.

Hi Eli and Roland,

I can reproduce this.  I don't usually build with Cairo, but I just did, and the problem does happen here as well.

Some small notes:

- Resizing the frames using the handles works fine
- Maximizing the frame causes the maximized region to not be redisplayed
- Running the following on a non-maximized frame) also causes a display glitch:
    (set-face-attribute 'default nil :height 150)
  (when the frame extends to accommodate the larger font size, the newly added areas do not get redisplayed)
- I have attached a two screenshots showing how the maximized frame looks. The top left (corresponding to the previous size) is properly updated, while the rest of the frame displays what was on the screen when the frame was maximized
- Not sure if it's related or if it should be another bug: font anti-aliasing is not the same when when maximized and unmaximized (see screenshots).

Here is the output of the commands that martin suggested:

(display-monitor-attributes-list)
=> (((name . "DP-2") (geometry 0 0 1920 1080) (workarea 0 0 1920 1055) (mm-size 344 193) (frames #<frame **scratch* 0x12bb5a0>) (source . "Gdk")))

(frame-geometry)
=> ((outer-position 0 . 0) (outer-size 1920 . 1055) (external-border-size 0 . 1) (title-bar-size 0 . 23) (menu-bar-external . t) (menu-bar-size 0 . 0) (tool-bar-external . t) (tool-bar-position . top) (tool-bar-size 0 . 0) (internal-border-width . 0))

(setq frame-size-history '(5))
=> (5)

(frame--size-history)
=> nil

(In other buffer:)
Frame size history of #<frame **scratch* 0x12bb5a0>
x-handle-net-wm-state    nil (nil nil)

My version info:

In GNU Emacs 25.1.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8, cairo version 1.13.1)
 of 2016-06-26 built on clem-w50-mint
Repository revision: 431437b6593320dc5a7a8aac9c911c778a656117
Windowing system distributor 'The X.Org Foundation', version 11.0.11501000
System Description:	Linux Mint 17.3 Rosa

Cheers,
Clément