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

From: Lars Ingebrigtsen <[email-masked]>
Date: Mon, 15 Jul 2019 12:13:57 +0200

Juri Linkov <[email-masked]> writes:

>>> 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?
>
> There is already `frame-monitor-attributes' added in Emacs 24 (see NEWS.24),
> e.g.
>
>   (frame-monitor-attributes (selected-frame))

So there is.  Drew, does this function do what you want?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no