Various fixes around Bug#16013.

* window.c (resize_frame_windows): Don't return immediately when
the root window's size doesn't change - the minibuffer window
may still have to be repositioned/resized.
* xfns.c (Fx_create_frame): Always change the frame size after
initializing the frame's faces.
* xterm.c (handle_one_xevent): Don't set pixel sizes here,
change_frame_size should already have done it.
(x_new_font): Assign new tool- and menu-bar heights.
(x_set_window_size_1): Account for tool- and menu-bar heights
(Bug#16013). Don't set pixel sizes since change_frame_size
should already have done it.
This commit is contained in:
Martin Rudalics 2013-12-11 11:03:46 +01:00
parent a8f9bc05c3
commit d94c40c1b7
4 changed files with 31 additions and 19 deletions

View file

@ -1,3 +1,17 @@
2013-12-11 Martin Rudalics <rudalics@gmx.at>
* window.c (resize_frame_windows): Don't return immediately when
the root window's size doesn't change - the minibuffer window
may still have to be repositioned/resized.
* xfns.c (Fx_create_frame): Always change the frame size after
initializing the frame's faces.
* xterm.c (handle_one_xevent): Don't set pixel sizes here,
change_frame_size should already have done it.
(x_new_font): Assign new tool- and menu-bar heights.
(x_set_window_size_1): Account for tool- and menu-bar heights
(Bug#16013). Don't set pixel sizes since change_frame_size
should already have done it.
2013-12-11 Paul Eggert <eggert@cs.ucla.edu>
Remove the option of using libcrypto.

View file

@ -4057,7 +4057,7 @@ resize_frame_windows (struct frame *f, int size, bool horflag, bool pixelwise)
r->pixel_top = FRAME_TOP_MARGIN_HEIGHT (f);
if (new_pixel_size == old_pixel_size)
return;
;
else if (WINDOW_LEAF_P (r))
/* For a leaf root window just set the size. */
if (horflag)

View file

@ -3069,7 +3069,6 @@ This function is an internal primitive--use `make-frame' instead. */)
happen. */
init_frame_faces (f);
#ifdef USE_GTK
/* PXW: This is a duplicate from below. We have to do it here since
otherwise x_set_tool_bar_lines will work with the character sizes
installed by init_frame_faces while the frame's pixel size is still
@ -3078,12 +3077,8 @@ This function is an internal primitive--use `make-frame' instead. */)
non-pixelwise code apparently worked around this because it had one
frame line vs one toolbar line which left us with a zero root
window height which was obviously wrong as well ... */
width = FRAME_TEXT_WIDTH (f);
height = FRAME_TEXT_HEIGHT (f);
FRAME_TEXT_HEIGHT (f) = 0;
SET_FRAME_WIDTH (f, 0);
change_frame_size (f, width, height, 1, 0, 0, 1);
#endif /* USE_GTK */
change_frame_size (f, FRAME_COLS (f) * FRAME_COLUMN_WIDTH (f),
FRAME_LINES (f) * FRAME_LINE_HEIGHT (f), 1, 0, 0, 1);
/* Set the menu-bar-lines and tool-bar-lines parameters. We don't
look up the X resources controlling the menu-bar and tool-bar

View file

@ -6622,8 +6622,8 @@ handle_one_xevent (struct x_display_info *dpyinfo,
cancel_mouse_face (f);
}
FRAME_PIXEL_WIDTH (f) = event->xconfigure.width;
FRAME_PIXEL_HEIGHT (f) = event->xconfigure.height;
/** FRAME_PIXEL_WIDTH (f) = event->xconfigure.width; **/
/** FRAME_PIXEL_HEIGHT (f) = event->xconfigure.height; **/
#endif /* not USE_GTK */
#endif
@ -7689,6 +7689,9 @@ x_new_font (struct frame *f, Lisp_Object font_object, int fontset)
FRAME_COLUMN_WIDTH (f) = font->average_width;
FRAME_LINE_HEIGHT (f) = FONT_HEIGHT (font);
FRAME_TOOL_BAR_HEIGHT (f) = FRAME_TOOL_BAR_LINES (f) * FRAME_LINE_HEIGHT (f);
FRAME_MENU_BAR_HEIGHT (f) = FRAME_MENU_BAR_LINES (f) * FRAME_LINE_HEIGHT (f);
compute_fringe_widths (f, 1);
/* Compute the scroll bar width in character columns. */
@ -8541,13 +8544,15 @@ x_set_window_size_1 (struct frame *f, int change_gravity, int width, int height,
compute_fringe_widths (f, 0);
pixelwidth =
(pixelwise ? width : FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, width))
+ FRAME_TOOLBAR_WIDTH (f);
pixelheight =
(pixelwise ? height : FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, height))
+ FRAME_MENUBAR_HEIGHT (f) + FRAME_TOOLBAR_HEIGHT (f);
pixelwidth = ((pixelwise
? FRAME_TEXT_TO_PIXEL_WIDTH (f, width)
: FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, width))
+ FRAME_TOOLBAR_WIDTH (f));
pixelheight = ((pixelwise
? FRAME_TEXT_TO_PIXEL_HEIGHT (f, height)
: FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, height))
+ FRAME_MENUBAR_HEIGHT (f)
+ FRAME_TOOLBAR_HEIGHT (f));
if (change_gravity) f->win_gravity = NorthWestGravity;
x_wm_set_size_hint (f, (long) 0, 0);
XResizeWindow (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f),
@ -8582,8 +8587,6 @@ x_set_window_size_1 (struct frame *f, int change_gravity, int width, int height,
else
{
change_frame_size (f, width, height, 0, 1, 0, 1);
FRAME_PIXEL_WIDTH (f) = pixelwidth;
FRAME_PIXEL_HEIGHT (f) = pixelheight;
x_sync (f);
}
}