Subject: bug#25228: 25.1; GNU emacs 25.1: custom-set-faces from init file ~/.emacs ignored

From: martin rudalics <[email-masked]>
Date: Thu, 22 Dec 2016 18:45:33 +0100

>>> FYI - this is most probably unrelated to the font-height problem, anyway:
 >>> 1. On my "font-height-works" machine (Ubuntu 16.10) the first invocation
 >>> of:
 >>>       ./src/emacs -q --eval "(set-face-attribute 'default nil :height 40)"
 >>> &
 >>> creates a rather small frame (I mean gtk window).
 >>
 >> With 40 lines though.  What did you expect?
 >
 > I think it's better to show you some screenshots:
 >
 > http://picpaste.com/first.png
 > Size is 522 x 486 - I think this is too small (a bug?)

I can't say - what does evaluating (frame-height) give - if you can read
it?

 > http://picpaste.com/second-fdbVUcuU.png
 > Size is 762 x 695 pixels - expected size

You mean the first picture was from a first invocation of Emacs and the
second picture from a second?  Funny.  Anyway - it's the menu bar.

I forgot for the umpteenth time where these GTK errors come from.  So
anybody who reads this please remember with me:

   Whenever you see in your Emacs session something like

   Gtk-CRITICAL **: gtk_distribute_natural_allocation:
   assertion 'extra_space >= 0' failed

   then most likely your GTK menubar has become too large for the
   (implicitly) specified frame width and GTK will deliberately widen
   your frame to make the menubar fit.

I haven't yet found out how to truncate menubars with GTK.

This behavior reaches its highest level of annoyance when switching
buffers in a window, a few menu bar items get added and the frame gets
wider ... I have to mention this in the Emacs 25.2 manual.

 >>> 3. On my "font-height-buggy" machine (Ubuntu 16.10 in VirtBox under
 >>> Windows 7) I
 >>> always get small frames of the same size and I never see any Gtk errors or
 >>> warnings.
 >>
 >> The Windows API has no idea of window sizes based on the metrics of some
 >> default font.  The "round frame sizes to multiples of the default font
 >> height" paradigm is among the most irksome legacies the Emacs frame code
 >> has to deal with.
 >
 > I run my emacs on Ubuntu 16.10 with Xfce installed in Virtual Machine running
 > on Windows 7. Is Windows API the culprit here? I don't think so.

I have no idea.  Does the menu bar fit there?

martin