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:
parent
a8f9bc05c3
commit
d94c40c1b7
4 changed files with 31 additions and 19 deletions
|
@ -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.
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
25
src/xterm.c
25
src/xterm.c
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue