[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