Subject: Re: bug#9366: Display geometry change hook

From: martin rudalics <[email-masked]>
Date: Mon, 21 Sep 2020 09:26:01 +0200

>>   > Would it work to test the display geometry from focus-in-hook?
 >>
 >> Sounds expensive
 >
 > How so?  Is the API which we use to determine the display geometry
 > expensive?

I meant expensive in the sense that Emacs would poll the display
geometry in every focus event with maybe a handful of people ever making
use of it.

 > Any quantitative data about that?
 >
 >> And what about a user who currently has no frame on that display but
 >> might consider switching to it when its geometry meets certain
 >> requirements?
 >
 > Is this an important use case?

I don't know.  I never plug a monitor into a running session.

 >>   > Or
 >>   > from a timer?
 >>
 >> To poll the geometry?  Sounds much too expensive too.
 >
 > Same question as above.  We currently have several timers running in
 > every session, so a timer that ticks, say, once a second doesn't sound
 > too expensive to me.  Especially since this will most probably be an
 > optional feature.

You mean when the value of 'display-geometry-change-hook' is non-nil,
for example.

 >> If and when the underlying windowing system informs us of display
 >> changes, I would just react to them.  What's speaking against it?
 >
 > The proposed solution was only for X, and using an optional component
 > at that.  I'd rather find a solution that would work on all supported
 > platforms and required no special APIs.

But it would probably rely on 'display-monitor-attributes-list' and thus
use its APIs.  And on Windows, for example, the "special" API is already
there in WM_DISPLAYCHANGE and I suppose the other platforms should be
able to handle fullscreen frames after a display change in a similar way
too.

In either case it's no great deal.  I won't implement it because I've
sworn to never change the resolution of a running system again (once an
xfce Debian here insisted for weeks to come up with a 640x480 screen
resolution because it did not trust my monitor's repeat frequency) and
master still struggles with the (funcall eldoc-documentation-function)
issue.

martin