emacs-devel
[Top][All Lists]
Advanced

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

Re: Scaling stuff for high dpi screens


From: David Kastrup
Subject: Re: Scaling stuff for high dpi screens
Date: Fri, 30 Jan 2015 11:05:55 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)

address@hidden (Adam Sjøgren) writes:

> David writes:
>
>> (/ (display-pixel-width) (/ (display-mm-width) 25.4))
>
> Here are my observations so far:
>
>  a) When starting Emacs by using "emacs" on the command line,
>     display-pixel-width and display-mm-width returns what I expect
>     (3200, 406).
>
>  b) after-make-frame-functions are not called when I start Emacs using
>     "emacs" on the command line and the first frame appears.
>
>     If I subsequently create a new frame with C-x 5 2, or emacsclient
>     --create-frame --alternate-editor="", they are called, and the
>     widths are as expected.
>
>  c) If I use 'emacsclient --create-frame --alternate-editor=""' to start
>     Emacs, then after-make-frame-functions are called, but when I call
>     display-pixel-width and display-mm-width in such a function, I get
>     (10, nil) back.
>
>     If I subsequently make a new frame with C-x 5 2, or emacsclient
>     --create-frame --alternate-editor="", then the expected values are
>     returned.
>
> I don't understand b), but don't mind much, as it is easy to call my
> function on the first frame created in my init.el.
>
> I don't understand c) either, but it is quite annoying, because I can't
> find a suitable way/hook in which to call display-pixel/mm-width at a
> time where they give the results I expect.

You might have to provide the functions with explicit display arguments
if the "selected frame" does not correspond to a graphical display.

display-pixel-width is a compiled Lisp function in `frame.el'.

(display-pixel-width &optional DISPLAY)

Return the width of DISPLAY's screen in pixels.
DISPLAY can be a display name or a frame.
If DISPLAY is omitted or nil, it defaults to the selected frame's display.

For character terminals, each character counts as a single pixel.

For graphical terminals, note that on "multi-monitor" setups this
refers to the pixel width for all physical monitors associated
with DISPLAY.  To get information for each physical monitor, use
`display-monitor-attributes-list'.


-- 
David Kastrup



reply via email to

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