Two adjustments in window/frame resizing.
* frame.c (x_set_frame_parameters): Always calculate new sizes pixelwise to avoid potential loss when rounding. * window.el (fit-frame-to-buffer): Get maximum width from display's width instead of height.
This commit is contained in:
parent
e2bd66b7a1
commit
8960529e6b
4 changed files with 23 additions and 13 deletions
|
@ -1,3 +1,8 @@
|
|||
2014-03-12 Martin Rudalics <rudalics@gmx.at>
|
||||
|
||||
* window.el (fit-frame-to-buffer): Get maximum width from
|
||||
display's width instead of height.
|
||||
|
||||
2014-03-12 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* desktop.el (desktop-restore-frames)
|
||||
|
|
|
@ -7043,7 +7043,7 @@ FRAME."
|
|||
(- (* (nth 2 sizes) char-width) window-extra-width))
|
||||
((numberp max-width)
|
||||
(- (* max-width char-width) window-extra-width))
|
||||
(t display-height)))
|
||||
(t display-width)))
|
||||
(min-width
|
||||
(cond
|
||||
((numberp (nth 3 sizes))
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2014-03-12 Martin Rudalics <rudalics@gmx.at>
|
||||
|
||||
* frame.c (x_set_frame_parameters): Always calculate new sizes
|
||||
pixelwise to avoid potential loss when rounding.
|
||||
|
||||
2014-03-11 Dmitry Antipov <dmantipov@yandex.ru>
|
||||
|
||||
* xfns.c (x_set_mouse_color): Recolor vertical_drag_cursor.
|
||||
|
|
24
src/frame.c
24
src/frame.c
|
@ -2848,14 +2848,14 @@ x_set_frame_parameters (struct frame *f, Lisp_Object alist)
|
|||
/* Provide default values for HEIGHT and WIDTH. */
|
||||
width = (f->new_width
|
||||
? (f->new_pixelwise
|
||||
? (f->new_width / FRAME_COLUMN_WIDTH (f))
|
||||
: f->new_width)
|
||||
: FRAME_COLS (f));
|
||||
? f->new_width
|
||||
: (f->new_width * FRAME_COLUMN_WIDTH (f)))
|
||||
: FRAME_TEXT_WIDTH (f));
|
||||
height = (f->new_height
|
||||
? (f->new_pixelwise
|
||||
? (f->new_height / FRAME_LINE_HEIGHT (f))
|
||||
: f->new_height)
|
||||
: FRAME_LINES (f));
|
||||
? f->new_height
|
||||
: (f->new_height * FRAME_LINE_HEIGHT (f)))
|
||||
: FRAME_TEXT_HEIGHT (f));
|
||||
|
||||
/* Process foreground_color and background_color before anything else.
|
||||
They are independent of other properties, but other properties (e.g.,
|
||||
|
@ -2899,12 +2899,12 @@ x_set_frame_parameters (struct frame *f, Lisp_Object alist)
|
|||
if (EQ (prop, Qwidth) && RANGED_INTEGERP (0, val, INT_MAX))
|
||||
{
|
||||
size_changed = 1;
|
||||
width = XFASTINT (val);
|
||||
width = XFASTINT (val) * FRAME_COLUMN_WIDTH (f) ;
|
||||
}
|
||||
else if (EQ (prop, Qheight) && RANGED_INTEGERP (0, val, INT_MAX))
|
||||
{
|
||||
size_changed = 1;
|
||||
height = XFASTINT (val);
|
||||
height = XFASTINT (val) * FRAME_LINE_HEIGHT (f);
|
||||
}
|
||||
else if (EQ (prop, Qtop))
|
||||
top = val;
|
||||
|
@ -2986,15 +2986,15 @@ x_set_frame_parameters (struct frame *f, Lisp_Object alist)
|
|||
Lisp_Object frame;
|
||||
|
||||
/* Make this 1, eventually. */
|
||||
check_frame_size (f, &width, &height, 0);
|
||||
check_frame_size (f, &width, &height, 1);
|
||||
|
||||
XSETFRAME (frame, f);
|
||||
|
||||
if (size_changed
|
||||
&& (width != FRAME_COLS (f)
|
||||
|| height != FRAME_LINES (f)
|
||||
&& (width != FRAME_TEXT_WIDTH (f)
|
||||
|| height != FRAME_TEXT_HEIGHT (f)
|
||||
|| f->new_height || f->new_width))
|
||||
Fset_frame_size (frame, make_number (width), make_number (height), Qnil);
|
||||
Fset_frame_size (frame, make_number (width), make_number (height), Qt);
|
||||
|
||||
if ((!NILP (left) || !NILP (top))
|
||||
&& ! (left_no_change && top_no_change)
|
||||
|
|
Loading…
Add table
Reference in a new issue