bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#15336: Bad computation of window height


From: Stefan Kangas
Subject: bug#15336: Bad computation of window height
Date: Thu, 26 Sep 2019 14:44:00 +0200

tags 15336 notabug
close 15336
quit

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Sebastien Vauban <sva-news@mygooglest.com>
>> Date: Fri, 24 Oct 2014 16:16:27 +0200
>>
>> One side note though: I have 2 screens, and they are set up one above
>> the other (physically and logically).
>>
>>   |----------------------|
>>   | screen #2 (external) |  <-- 1680 x 1050
>>   |----------------------|
>>   | screen #1 (laptop)   |  <-- 1920 x 1080 (Full HD)
>>   |----------------------|
>>
>> That may impact what I see on Emacs 25.0.50.1.
>>
>> With the following code:
>>
>> --8<---------------cut here---------------start------------->8---
>>   (when (display-graphic-p)
>>
>>     ;; put Emacs exactly where you want it, every time it starts up
>>     (setq initial-frame-alist '((top . 0) (left . 0)))
>>
>>     ;; auto-detect the screen dimensions and compute the height of Emacs
>>     (add-to-list 'default-frame-alist
>>                  (cons 'height
>>                        (/ (- (x-display-pixel-height) 106)
>>                           (frame-char-height))))
>>
>>     ;; maximize Emacs by default
>>     (modify-all-frames-parameters '((fullscreen . maximized))))
>> --8<---------------cut here---------------end--------------->8---
>>
>> I'm expecting to have Emacs maximized at startup, on the main screen,
>> that is occupying the full space of screen #1: 1920 x 1080.
>>
>> What I get, instead, is an Emacs frame of (1680 + 1920) x 1080... whose
>> top-right corner is located at the top-right corner of screen #1 (hence,
>> I don't even see its full height, without minimizing and re-maximizing
>> it first).
>
> I'm guessing that the coordinates (0, 0) are on screen #1, in which
> case you are getting what you asked for: a frame whose top-left corner
> is on screen #1.
>
> When using several monitors connected to the same machine, you
> shouldn't assume that the top-left corner of the virtual screen has
> the coordinates (0, 0).

martin rudalics <rudalics@gmx.at> writes:

>>      ;; auto-detect the screen dimensions and compute the height of Emacs
>>      (add-to-list 'default-frame-alist
>>                   (cons 'height
>>                         (/ (- (x-display-pixel-height) 106)
>
> x-display-pixel-height is a built-in function in `C source code'.
> [...]
> On "multi-monitor" setups this refers to the pixel height for all
> physical monitors associated with DISPLAY.  To get information for
> each physical monitor, use `display-monitor-attributes-list'.
>
> And since you are (presumably) on Windows this coincides with the
> documentation of SM_CYVIRTUALSCREEN:
>
> The height of the virtual screen, in pixels. The virtual screen is the
> bounding rectangle of all display monitors. The SM_YVIRTUALSCREEN metric
> is the coordinates for the top of the virtual screen.

I think that makes sense, which means there is no bug here.  Everything
works as advertised.  I'm therefore closing this as notabug.  If that is
incorrect, please reopen.

Best regards,
Stefan Kangas





reply via email to

[Prev in Thread] Current Thread [Next in Thread]