Subject: Re: bug#21415: 25.0.50; Emacs Trunk -- pixelwise width/height for x-create-frame

From: Keith David Bershatsky <[email-masked]>
Date: Tue, 08 Sep 2015 17:38:35 -0700

I have tracked down the cause of the problem, but I do not know how to fix it.

`make-frame` with the patch is working correctly.  `x-create-frame-with-faces` does not deal with `font` when creating the frame, and `font` is dealt with after the fact by `face-set-after-frame-default`.  `face-set-after-frame-default` uses `set-face-attribute`, which is responsible for significantly changing the frame width/height

`(set-face-attribute 'default nil :font "-*-Courier-normal-normal-normal-*-18-*-*-*-m-0-iso10646-1")`

I commented out the `set-face-attribute` section of `face-set-after-frame-default` to track down the problem.  Is there any way to prevent `set-face-attribute` from ruining the outer frame dimensions that are created with `make-frame`?

(setq ns-auto-hide-menu-bar t)

(set-frame-position
  (make-frame '(
    (font . "-*-Courier-normal-normal-normal-*-18-*-*-*-m-0-iso10646-1")
    (vertical-scroll-bars)
    (left-fringe . 8)
    (right-fringe . 8)
    (width . 1900.0)
    (height . 1054.0)
    (tool-bar-lines . 0)
         ))
  0 0)

I am using `set-frame-position` to compensate for `ns-auto-hide-menu-bar`, which prevents successfully setting `top` (and maybe `left`) as part of the `make-frame` parameters.