Subject: 29.4; Incorrect workarea entry in display-monitor-attributes-list on macOS

From: Anders Lindgren <[email-masked]>
Date: Tue, 4 Feb 2025 14:42:07 +0100

Hi!

I think the `display-monitor-attributes-list' function returns an incorrect
`workarea' entry on macOS.

Concretely, I have a laptop with an external monitor connected. The
external monitor is placed above to the left.

The `display-monitor-attributes-list' function returns the following
(abbreviated):

    (((geometry 0 0 1728 1117) (workarea 0 38 1728 1079) ...
     ((geometry -2560 -723 2560 1440) (workarea -2560 -638 2560 1330) ...))

The first member in the list describes the laptop monitor (the primary
monitor), the second the external monitor.

The first two numbers, `X' and `Y', in each entry describe the position of
the top left corner of the area, relative to the top left corner of the
primary monitor.

The number that I think is incorrect is the `Y' of the workarea of the
external monitor, which is "-638". It indicates that there is a (723-638 =
85 pixel area on top of the screen which is outside the work area.)

However, in reality, there is a 25 pixel menu bar which should be outside
the work area. The 85 probably comes from the macOS dock, which is placed
in the lower part of the screen.

The height field correctly includes both the menu bar and the dock.

I've tested this on Emacs 29.4 and 30.0.93 on macOS 15.1.

    -- Anders Lindgren (Long time Emacs contributor and former NS
maintainer)