Subject: bug#25542: 25.1; Restoring the frame from fullscreen to maximized

From: martin rudalics <[email-masked]>
Date: Fri, 11 Sep 2020 09:53:29 +0200

>> ... after
 >> maximizing the frame with the mouse, the value of
 >>
 >> (frame-parameter nil 'fullscreen)
 >>
 >> is nil.  Correct?
 >
 > Yes.
 >
 >> And what is its value if, instead, you maximize the
 >> frame via 'toggle-frame-maximized'?
 >
 > maximized.

Mixing frame resizing triggered by Emacs commands and external tools is
tricky to handle.

 >> Apparently some check _is_ needed (why?) so probably
 >> using
 >>
 >>              if (x < 0 || y < 0)
 >>                store_frame_param (f, Qfullscreen, Qmaximized);
 >>
 >> instead will fix it.  Can you try that (as I said elsewhere it will then
 >> fail for borderless, maximized frames)?
 >
 > Yes, that does fix it.

So we'll probably have to use that.  Can you install it?

 > I haven't tried to test anything involving borderless frames.

If you

(set-frame-parameter nil 'undecorated t)

and maximize the frame via some Windows (Aero, IIRC) command, what does

(frame-parameter nil 'fullscreen)

report?  With and without the && ~> || change.

And it would still be interesting to understand your earlier finding,
namely that

   If I make this change and follow Dani's recipe from the original bug
   report, the second F11 press doesn't restore the previous state.
   Instead, the frame appears to get slightly smaller for an instant and
   then immediately reverts to fullscreen mode.

That second F11 should set the 'fullscreen parameter to 'maximized so I
fail to see how a subsequent action can restore it to 'fullboth.  In
retrospect, that

		  /* Windows can send us a SIZE_MAXIMIZED message even
		     when fullscreen is fullboth ....

comment apparently matches your experience now but I cannot even recall
based on what experience I added it back then.

Thanks, martin