Subject: bug#16013: 24.3.50; Rows in height is interpreted as pixels.

From: martin rudalics <[email-masked]>
Date: Tue, 14 Jan 2014 19:10:24 +0100

> GNUStep has some bugs w.r.t. the tool bar, so the values for GNUStep is as good as it gets.

As for the rest the main problem is this part in x_figure_window_size:

   /* This used to be done _before_ calling x_figure_window_size, but
      since the height is reset here, this was really a no-op.  I
      assume that moving it here does what Gerd intended (although he
      no longer can remember what that was...  ++KFS, 2003-03-25.  */

   /* Add the tool-bar height to the initial frame height so that the
      user gets a text display area of the size he specified with -g or
      via .Xdefaults.  Later changes of the tool-bar height don't
      change the frame size.  This is done so that users can create
      tall Emacs frames without having to guess how tall the tool-bar
      will get.  */
   if (toolbar_p && FRAME_TOOL_BAR_HEIGHT (f))
     {
       int margin, relief, bar_height;

       relief = (tool_bar_button_relief >= 0
		? tool_bar_button_relief
		: DEFAULT_TOOL_BAR_BUTTON_RELIEF);

       if (RANGED_INTEGERP (1, Vtool_bar_button_margin, INT_MAX))
	margin = XFASTINT (Vtool_bar_button_margin);
       else if (CONSP (Vtool_bar_button_margin)
	       && RANGED_INTEGERP (1, XCDR (Vtool_bar_button_margin), INT_MAX))
	margin = XFASTINT (XCDR (Vtool_bar_button_margin));
       else
	margin = 0;

       /* PXW: We should be able to not round here.  */
       bar_height = DEFAULT_TOOL_BAR_IMAGE_HEIGHT + 2 * margin + 2 * relief;
       FRAME_LINES (f) += (bar_height + FRAME_LINE_HEIGHT (f) - 1) / FRAME_LINE_HEIGHT (f);
     }

If I define it out, the sizes of the first and subsequent frames are
equal on Lucid.  IIUC x_figure_window_size is not called when changing
fonts or default heights.

martin