Subject: Re: bug#7296: display-pixel-height not enough

From: Lennart Borgman <[email-masked]>
Date: Mon, 1 Nov 2010 13:00:52 +0100

On Mon, Nov 1, 2010 at 12:37 PM, Jan Djärv <[email-masked]> wrote:
> 2010-10-31 13:46, Lennart Borgman skrev:
>>
>> On Sun, Oct 31, 2010 at 11:51 AM, Jan Djärv<[email-masked]>  wrote:
>>
>>>>> I know that W32 has some mechanism to maximize a window without
>>>>> fiddling
>>>>> with height and width. You should check if there is a similar way to
>>>>> maximize just height by asking the system to do it.
>>>>
>>>> I told how to do this earlier in this thread. Or did not that message
>>>> reach
>>>> you?
>>>
>>> Actually you did not.  You showed how to get display pixel sizes.  More
>>> is
>>> needed to correctly calculate the Emacs frame dimensions.
>>
>> Some misunderstanding. I told the API:s for getting the size of the work
>> area.
>
> Whis is not the same thing at all.  Making an Emacs frame maximized in
> height from lisp code is so much more, as others have told you.  And you
> need a sure way to do this for all platforms and for all window managers if
> it is to be any good at all.

Maybe you are misunderstanding part what I am saying. However I might
have misunderstood something here too. Some clarifications:

- I am speaking mainly about the w32 platform because I know how the
window manager behaves there. I know nothing about the window manages
on other platforms. So please just add suggestions for other platforms
too.

- On w32 display-pixel-height currently returns the total display size
instead of the work area (i.e. the area that the window managers
thinks fit for normally handled windows). I can't see that we have any
use of the total display size on w32. (Though Jason said there might
be. I asked him to clarify this.)

- On w32 you do not maximize a window by setting the size. (I do not
know how this is handled currently in the unpatched Emacs but I
changed it several years ago in my patched Emacs.)

- My initial proposal was to add new functions for the work area size.
However Eli suggested changing display-pixel-height instead on w32 (if
I did not misunderstood Eli). I don't care much which way we do it,
but I think we should have functions to get the size of the work area.

> Nothing is unclear.  It is just that you want to change one value for
> another with unforseen consequences for various platforms instead of solving
> the problem, making a window maximized on height.

I am trying to avoid bad consequences, of course (without beeing bug
back compatible).

You may want the max width or height without immediately setting them.

> If we change display-height, it will cause problems on other platforms, X11
> comes to mind, where autohide and panel always on top is something the
> window manager keeps track of.  If we only do this for W32 display height
> means two different things.  Also as has been pointed out, stuff like
> calculating DPI will be wrong.

Ok. On w32 the window manager also keeps track of those things (with
the API:s I pointed to, but not with the current implementation of
display-pixel-height/width).

So then it looks best to me to add new functions for the work area
size. What do you think of that?