Subject: Re: bug#13935: 24.3.50; `fullscreen' frame parameter is wrong, on MS Windows at least

From: Eli Zaretskii <[email-masked]>
Date: Fri, 15 Mar 2013 15:53:40 +0200

> Cc: Dani Moncayo <[email-masked]>,
>  "[email-masked]" <[email-masked]>,
>  "[email-masked]" <[email-masked]>
> From: Jan Djärv <[email-masked]>
> Date: Fri, 15 Mar 2013 13:00:27 +0100
> 
> > This was because the 'fullboth' terminology is confusing and tricked
> > me into thinking that 'fullboth' value of the 'fullscreen' frame
> > parameter means 'fullwidth' and 'fullheight' together.  But in fact,
> > 'maximized' is 'fullwidth' and 'fullheight' together, while 'fullboth'
> > means the same as 'fullscreen'.  Confusing.
> > 
> 
> In early versions of the EWMH-specification, there was no fullscreen.  So when both maximize_width an maximize_height where set, windowmanagers did not know if to do fullscreen or maximized. I guess I used a WM that did fullscreen when I wrote this.

My problem was not with how we tell the WM to go full-screen.  My
problem was with the Lisp symbols used for the possible values of this
frame parameter, and with their equivalent C enumeration values.
E.g., this code in frame.c:

  if (NILP (new_value))
    f->want_fullscreen = FULLSCREEN_NONE;
  else if (EQ (new_value, Qfullboth) || EQ (new_value, Qfullscreen))
    f->want_fullscreen = FULLSCREEN_BOTH;
  else if (EQ (new_value, Qfullwidth))
    f->want_fullscreen = FULLSCREEN_WIDTH;
  else if (EQ (new_value, Qfullheight))
    f->want_fullscreen = FULLSCREEN_HEIGHT;
  else if (EQ (new_value, Qmaximized))
    f->want_fullscreen = FULLSCREEN_MAXIMIZED;

FULLSCREEN_BOTH is clearly hinting that it is both FULLSCREEN_HEIGHT
and FULLSCREEN_WIDTH, while FULLSCREEN_MAXIMIZED is the odd one out.
But in fact, it's FULLSCREEN_BOTH that's the odd one out, and on the
Lisp level 'fullboth' and 'fullscreen' are synonyms.  That's what
confused me: the semantics of these values, and their counter-mnemonic
nature.