Subject: bug#30074: 26.0; Add function(s) for current monitor info

From: Drew Adams <[email-masked]>
Date: Sun, 14 Jul 2019 15:07:57 -0700 (PDT)

> > Please consider adding a function that returns the info describing the
> > monitor that dominates a frame (default: selected frame).  In
> > particular, the size of the monitor.  This can be useful, for example,
> > for positioning a frame when there are multiple monitors.
> >
> > I've been using this, but you might have a better implementation in
> > mind:
> >
> > (defun current-monitor (&optional frame)
> >   "Attributes of monitor that dominates FRAME (default: `selected-frame')."
> >   (catch 'current-monitor
> >     (dolist (atts  (display-monitor-attributes-list frame))
> >       (when (member (or frame  (selected-frame)) (cdr (assq 'frames atts)))
> >         (throw 'current-monitor atts)))
> >     nil))                              ; Should never happen (?)
> 
> I guess it's possible for a frame to be on several monitors?  (Half on
> one and half on another.)  What would this function return in that case?

I'm not in front of multiple monitors now.  Perhaps
I can check later, when I am.

In any case, all we have, AFAIK, is
`display-monitor-attributes-list'.  It decides what
it returns.  Attribute `frames' is described thus:

"frames -- List of frames dominated by the physical monitor"

For the same frame to be "dominated" by more than
one monitor I would wonder what good the word
"dominated" could possibly do here.  It suggests
that one of the monitors dominates a given frame.

Anyway, I'll try to remember to check, when I'm
in the presence of > 1 monitor, unless someone
beats me to it.