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

From: Ken Brown <[email-masked]>
Date: Sat, 5 Sep 2020 11:10:31 -0400

On 9/5/2020 8:32 AM, Dani Moncayo wrote:
> On Sat, Sep 5, 2020 at 2:30 PM Eli Zaretskii <[email-masked]> wrote:
>>
>>> From: Dani Moncayo <[email-masked]>
>>> Date: Sat, 5 Sep 2020 14:19:10 +0200
>>> Cc: Ken Brown <[email-masked]>, Lars Magne Ingebrigtsen <[email-masked]>, [email-masked],
>>>        Noam Postavsky <[email-masked]>, martin rudalics <[email-masked]>
>>>
>>> On Sat, Sep 5, 2020 at 2:17 PM Eli Zaretskii <[email-masked]> wrote:
>>>> [...]
>>>> Then we have a reproducibility problem, because I don't see this with
>>>> the native build, and neither did Martin at the time (see his initial
>>>> response to the original bug report).
>>>
>>> Did you try with the taskbar attached to the left side of the screen?
>>
>> No.  And it isn't clear to me whether Martin did.
> 
> OK.  So, are you able to reproduce the problem now?
> 
> BTW, another detail I've just noticed to reproduce the problem: in the
> "taskbar settings" the flag "Automatically hide the taskbar" must be
> turned off.

I can reproduce the problem on the Cygwin w32 build, but Martin's suggestion 
(https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25542#83) doesn't fix it.  He 
suggested the following, if I understand correctly:

diff --git a/src/w32term.c b/src/w32term.c
index 76cf6bd696..c7da95528b 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -5454,15 +5454,7 @@ w32_read_socket (struct terminal *terminal,
                      simple hack to check that based on the fact that
                      only a maximized fullscreen frame should have both
                      top/left outside the screen.  */
-                 if (EQ (fullscreen, Qfullwidth) || EQ (fullscreen, Qfullheight)
-                     || NILP (fullscreen))
-                     {
-                       int x, y;
-
-                       w32_real_positions (f, &x, &y);
-                       if (x < 0 && y < 0)
-                         store_frame_param (f, Qfullscreen, Qmaximized);
-                     }
+                   store_frame_param (f, Qfullscreen, Qmaximized);
                   }

                   break;

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.

Ken