mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-02-03 20:24:29 +00:00
Some more fixes for pixelwise resizing.
Remove scroll_bar_actual_width from frames. * frame.h (struct frame): Remove scroll_bar_actual_width slot. * frame.c (Fscroll_bar_width): Return scroll bar area width. (x_figure_window_size): * nsterm.m (x_set_window_size): * widget.c (set_frame_size): * w32term.c (x_set_window_size): * xterm.c (x_set_window_size, x_set_window_size_1): Don't set scroll_bar_actual_width. Convert scroll_bar members to integers on Windows. * w32term.h (struct scroll_bar): Convert top, left, width, height, start, end and dragging to integers. * w32fns.c (w32_createscrollbar): Remove XINT conversions for scroll_bar members. * w32term.c (w32_set_scroll_bar_thumb) (w32_scroll_bar_handle_click): Remove XINT conversions for scroll_bar members. Treat bar->dragging as integer. (x_scroll_bar_create): Call ALLOCATE_PSEUDOVECTOR with "top" as first element. Remove XINT conversions for scroll_bar members. (w32_set_vertical_scroll_bar, x_scroll_bar_report_motion): Remove XINT conversions for scroll_bar members. Fix assignment for new window total sizes. * window.c (Fwindow_resize_apply_total): Assign values for minibuffer window. * window.el (window--pixel-to-size): Remove function. (window--pixel-to-total-1, window--pixel-to-total): Fix calculation of new total sizes.
This commit is contained in:
parent
d506bc1d20
commit
c44de18d7d
@ -1,3 +1,10 @@
|
||||
2013-12-20 Martin Rudalics <rudalics@gmx.at>
|
||||
|
||||
Fix assignment for new window total sizes.
|
||||
* window.el (window--pixel-to-size): Remove function.
|
||||
(window--pixel-to-total-1, window--pixel-to-total): Fix
|
||||
calculation of new total sizes.
|
||||
|
||||
2013-12-20 Vitalie Spinu <spinuvit@gmail.com>
|
||||
|
||||
* comint.el (comint-output-filter): Fix rear-nonsticky property
|
||||
|
@ -2079,30 +2079,16 @@ WINDOW's frame if the option `window-resize-pixelwise' is nil."
|
||||
size)
|
||||
(* size char-size))))
|
||||
|
||||
(defun window--pixel-to-size (window size &optional horizontal round-up)
|
||||
"For WINDOW convert SIZE pixels to lines.
|
||||
WINDOW must be a valid window and defaults to the selected one.
|
||||
Optional argument HORIZONTAL non-nil means convert SIZE pixels to
|
||||
columns. Optional argument ROUND-UP means to round up the return
|
||||
value."
|
||||
(let ((char-size (frame-char-size
|
||||
(window-normalize-window window) horizontal)))
|
||||
(if round-up
|
||||
(/ (+ size char-size -1) char-size)
|
||||
(/ size char-size))))
|
||||
|
||||
(defun window--pixel-to-total-1 (window horizontal char-size)
|
||||
"Subroutine of `window--pixel-to-total'."
|
||||
(let ((child (window-child window)))
|
||||
(if (window-combination-p window horizontal)
|
||||
;; In an iso-combination distribute sizes proportionally.
|
||||
(let ((remainder (window-new-total window))
|
||||
size best-child best-size)
|
||||
size best-child rem best-rem)
|
||||
;; Initialize total sizes to each child's floor.
|
||||
(while child
|
||||
(setq size (window--pixel-to-size
|
||||
child (window-size child horizontal t)
|
||||
horizontal))
|
||||
(setq size (max (/ (window-size child horizontal t) char-size) 1))
|
||||
(set-window-new-total child size)
|
||||
(setq remainder (- remainder size))
|
||||
(setq child (window-next-sibling child)))
|
||||
@ -2110,15 +2096,15 @@ value."
|
||||
(while (> remainder 0)
|
||||
(setq child (window-last-child window))
|
||||
(setq best-child nil)
|
||||
(setq best-size 0)
|
||||
;; We want those auxiliary fields in the window structure to
|
||||
;; avoid this.
|
||||
(setq best-rem 0)
|
||||
(while child
|
||||
(setq size (- (/ (window-size child horizontal t) char-size)
|
||||
(window-new-total child)))
|
||||
(when (> size best-size)
|
||||
(setq best-child child)
|
||||
(setq best-size size))
|
||||
(when (and (<= (window-new-total child)
|
||||
(/ (window-size child horizontal t) char-size))
|
||||
(> (setq rem (% (window-size child horizontal t)
|
||||
char-size))
|
||||
best-rem))
|
||||
(setq best-child child)
|
||||
(setq best-rem rem))
|
||||
(setq child (window-prev-sibling child)))
|
||||
;; We MUST have a best-child here.
|
||||
(set-window-new-total best-child 1 t)
|
||||
@ -2142,14 +2128,39 @@ FRAME must be a live frame and defaults to the selected frame.
|
||||
Optional argument HORIZONTAL non-nil means assign new total
|
||||
window widths from pixel widths."
|
||||
(setq frame (window-normalize-frame frame))
|
||||
(let ((root (frame-root-window))
|
||||
(char-size (frame-char-size frame horizontal)))
|
||||
(set-window-new-total
|
||||
root (window--pixel-to-size
|
||||
root (window-size root horizontal t) horizontal))
|
||||
(let* ((char-size (frame-char-size frame horizontal))
|
||||
(root (frame-root-window))
|
||||
(root-size (window-size root horizontal t))
|
||||
;; We have to care about the minibuffer window only if it
|
||||
;; appears together with the root window on this frame.
|
||||
(mini (let ((mini (minibuffer-window frame)))
|
||||
(and (eq (window-frame mini) frame)
|
||||
(not (eq mini root)) mini)))
|
||||
(mini-size (and mini (window-size mini horizontal t))))
|
||||
;; We round the line/column sizes of windows here to the nearest
|
||||
;; integer. In some cases this can make windows appear _larger_
|
||||
;; than the containing frame (line/column-wise) because the latter's
|
||||
;; sizes are not (yet) rounded. We might eventually fix that.
|
||||
(if (and mini (not horizontal))
|
||||
(let (lines)
|
||||
(set-window-new-total root (max (/ root-size char-size) 1))
|
||||
(set-window-new-total mini (max (/ mini-size char-size) 1))
|
||||
(setq lines (- (round (+ root-size mini-size) char-size)
|
||||
(+ (window-new-total root) (window-new-total mini))))
|
||||
(while (> lines 0)
|
||||
(if (>= (% root-size (window-new-total root))
|
||||
(% mini-size (window-new-total mini)))
|
||||
(set-window-new-total root 1 t)
|
||||
(set-window-new-total mini 1 t))
|
||||
(setq lines (1- lines))))
|
||||
(set-window-new-total root (round root-size char-size))
|
||||
(when mini
|
||||
;; This is taken in the horizontal case only.
|
||||
(set-window-new-total mini (round mini-size char-size))))
|
||||
(unless (window-buffer root)
|
||||
(window--pixel-to-total-1 root horizontal char-size)))
|
||||
(window-resize-apply-total frame horizontal))
|
||||
(window--pixel-to-total-1 root horizontal char-size))
|
||||
;; Apply the new sizes.
|
||||
(window-resize-apply-total frame horizontal)))
|
||||
|
||||
(defun window--resize-reset (&optional frame horizontal)
|
||||
"Reset resize values for all windows on FRAME.
|
||||
|
@ -1,3 +1,32 @@
|
||||
2013-12-20 Martin Rudalics <rudalics@gmx.at>
|
||||
|
||||
Remove scroll_bar_actual_width from frames.
|
||||
* frame.h (struct frame): Remove scroll_bar_actual_width slot.
|
||||
* frame.c (Fscroll_bar_width): Return scroll bar area width.
|
||||
(x_figure_window_size):
|
||||
* nsterm.m (x_set_window_size):
|
||||
* widget.c (set_frame_size):
|
||||
* w32term.c (x_set_window_size):
|
||||
* xterm.c (x_set_window_size, x_set_window_size_1): Don't set
|
||||
scroll_bar_actual_width.
|
||||
|
||||
Convert scroll_bar members to integers on Windows.
|
||||
* w32term.h (struct scroll_bar): Convert top, left, width,
|
||||
height, start, end and dragging to integers.
|
||||
* w32fns.c (w32_createscrollbar): Remove XINT conversions for
|
||||
scroll_bar members.
|
||||
* w32term.c (w32_set_scroll_bar_thumb)
|
||||
(w32_scroll_bar_handle_click): Remove XINT conversions for
|
||||
scroll_bar members. Treat bar->dragging as integer.
|
||||
(x_scroll_bar_create): Call ALLOCATE_PSEUDOVECTOR with "top" as
|
||||
first element. Remove XINT conversions for scroll_bar members.
|
||||
(w32_set_vertical_scroll_bar, x_scroll_bar_report_motion):
|
||||
Remove XINT conversions for scroll_bar members.
|
||||
|
||||
Fix assignment for new window total sizes.
|
||||
* window.c (Fwindow_resize_apply_total): Assign values for
|
||||
minibuffer window.
|
||||
|
||||
2013-12-20 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* textprop.c (Fadd_face_text_property): Doc fix. Rename `appendp'
|
||||
|
@ -5488,6 +5488,8 @@ change_frame_size_1 (struct frame *f, int new_width, int new_height,
|
||||
{
|
||||
new_text_width = (new_width == 0) ? FRAME_TEXT_WIDTH (f) : new_width;
|
||||
new_text_height = (new_height == 0) ? FRAME_TEXT_HEIGHT (f) : new_height;
|
||||
/* Consider rounding here: Currently, the root window can be
|
||||
larger than the frame in terms of columns/lines. */
|
||||
new_cols = new_text_width / FRAME_COLUMN_WIDTH (f);
|
||||
new_lines = new_text_height / FRAME_LINE_HEIGHT (f);
|
||||
}
|
||||
@ -5507,7 +5509,6 @@ change_frame_size_1 (struct frame *f, int new_width, int new_height,
|
||||
fringe columns. Do this after rounding - see discussion of
|
||||
bug#9723. */
|
||||
new_root_width = (new_text_width
|
||||
/* PXM: Use the configured scrollbar width !?? */
|
||||
+ FRAME_SCROLL_BAR_AREA_WIDTH (f)
|
||||
+ FRAME_TOTAL_FRINGE_WIDTH (f));
|
||||
/* If we're not changing the frame size, quit now. */
|
||||
|
@ -2515,7 +2515,7 @@ DEFUN ("frame-scroll-bar-width", Fscroll_bar_width, Sscroll_bar_width, 0, 1, 0,
|
||||
doc: /* Return scroll bar width of FRAME in pixels. */)
|
||||
(Lisp_Object frame)
|
||||
{
|
||||
return make_number (decode_any_frame (frame)->scroll_bar_actual_width);
|
||||
return make_number (FRAME_SCROLL_BAR_AREA_WIDTH (decode_any_frame (frame)));
|
||||
}
|
||||
|
||||
DEFUN ("frame-fringe-width", Ffringe_width, Sfringe_width, 0, 1, 0,
|
||||
@ -4237,8 +4237,6 @@ x_figure_window_size (struct frame *f, Lisp_Object parms, bool toolbar_p)
|
||||
window_prompting |= PSize;
|
||||
}
|
||||
|
||||
f->scroll_bar_actual_width
|
||||
= FRAME_SCROLL_BAR_COLS (f) * FRAME_COLUMN_WIDTH (f);
|
||||
|
||||
/* 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
|
||||
|
@ -436,10 +436,6 @@ struct frame
|
||||
int config_scroll_bar_width;
|
||||
int config_scroll_bar_cols;
|
||||
|
||||
/* The size of the extra width currently allotted for vertical
|
||||
scroll bars in this frame, in pixels. */
|
||||
int scroll_bar_actual_width;
|
||||
|
||||
/* The baud rate that was used to calculate costs for this frame. */
|
||||
int cost_calculation_baud_rate;
|
||||
|
||||
|
@ -1289,7 +1289,6 @@ x_set_window_size (struct frame *f,
|
||||
|
||||
check_frame_size (f, &width, &height, pixelwise);
|
||||
|
||||
f->scroll_bar_actual_width = NS_SCROLL_BAR_WIDTH (f);
|
||||
compute_fringe_widths (f, 0);
|
||||
|
||||
if (pixelwise)
|
||||
|
@ -1912,8 +1912,7 @@ w32_createscrollbar (struct frame *f, struct scroll_bar * bar)
|
||||
{
|
||||
return CreateWindow ("SCROLLBAR", "", SBS_VERT | WS_CHILD | WS_VISIBLE,
|
||||
/* Position and size of scroll bar. */
|
||||
XINT (bar->left), XINT (bar->top),
|
||||
XINT (bar->width), XINT (bar->height),
|
||||
bar->left, bar->top, bar->width, bar->height,
|
||||
FRAME_W32_WINDOW (f), NULL, hinst, NULL);
|
||||
}
|
||||
|
||||
|
@ -3451,9 +3451,7 @@ w32_mouse_position (struct frame **fp, int insist, Lisp_Object *bar_window,
|
||||
= x_window_to_scroll_bar (WindowFromPoint (pt));
|
||||
|
||||
if (bar)
|
||||
{
|
||||
f1 = XFRAME (WINDOW_FRAME (XWINDOW (bar->window)));
|
||||
}
|
||||
f1 = XFRAME (WINDOW_FRAME (XWINDOW (bar->window)));
|
||||
}
|
||||
|
||||
if (f1 == 0 && insist > 0)
|
||||
@ -3560,10 +3558,10 @@ w32_set_scroll_bar_thumb (struct scroll_bar *bar,
|
||||
/* We use the whole scroll-bar height in the calculations below, to
|
||||
avoid strange effects like scrolling backwards when just clicking
|
||||
on the handle (without moving it). */
|
||||
double range = VERTICAL_SCROLL_BAR_TOP_RANGE (f, XINT (bar->height))
|
||||
double range = VERTICAL_SCROLL_BAR_TOP_RANGE (f, bar->height)
|
||||
+ VERTICAL_SCROLL_BAR_MIN_HANDLE;
|
||||
int sb_page, sb_pos;
|
||||
BOOL draggingp = !NILP (bar->dragging) ? TRUE : FALSE;
|
||||
BOOL draggingp = bar->dragging ? TRUE : FALSE;
|
||||
SCROLLINFO si;
|
||||
|
||||
/* We used to change the nPage setting while dragging the handle,
|
||||
@ -3708,19 +3706,19 @@ x_scroll_bar_create (struct window *w, int top, int left, int width, int height)
|
||||
HWND hwnd;
|
||||
SCROLLINFO si;
|
||||
struct scroll_bar *bar
|
||||
= ALLOCATE_PSEUDOVECTOR (struct scroll_bar, fringe_extended_p, PVEC_OTHER);
|
||||
= ALLOCATE_PSEUDOVECTOR (struct scroll_bar, top, PVEC_OTHER);
|
||||
Lisp_Object barobj;
|
||||
|
||||
block_input ();
|
||||
|
||||
XSETWINDOW (bar->window, w);
|
||||
XSETINT (bar->top, top);
|
||||
XSETINT (bar->left, left);
|
||||
XSETINT (bar->width, width);
|
||||
XSETINT (bar->height, height);
|
||||
XSETINT (bar->start, 0);
|
||||
XSETINT (bar->end, 0);
|
||||
bar->dragging = Qnil;
|
||||
bar->top = top;
|
||||
bar->left = left;
|
||||
bar->width = width;
|
||||
bar->height = height;
|
||||
bar->start = 0;
|
||||
bar->end = 0;
|
||||
bar->dragging = 0;
|
||||
bar->fringe_extended_p = 0;
|
||||
|
||||
/* Requires geometry to be set before call to create the real window */
|
||||
@ -3838,10 +3836,10 @@ w32_set_vertical_scroll_bar (struct window *w,
|
||||
hwnd = SCROLL_BAR_W32_WINDOW (bar);
|
||||
|
||||
/* If already correctly positioned, do nothing. */
|
||||
if (XINT (bar->left) == sb_left
|
||||
&& XINT (bar->top) == top
|
||||
&& XINT (bar->width) == sb_width
|
||||
&& XINT (bar->height) == height
|
||||
if (bar->left == sb_left
|
||||
&& bar->top == top
|
||||
&& bar->width == sb_width
|
||||
&& bar->height == height
|
||||
&& bar->fringe_extended_p == fringe_extended_p)
|
||||
{
|
||||
/* Redraw after clear_frame. */
|
||||
@ -3883,10 +3881,10 @@ w32_set_vertical_scroll_bar (struct window *w,
|
||||
/* InvalidateRect (w, NULL, FALSE); */
|
||||
|
||||
/* Remember new settings. */
|
||||
XSETINT (bar->left, sb_left);
|
||||
XSETINT (bar->top, top);
|
||||
XSETINT (bar->width, sb_width);
|
||||
XSETINT (bar->height, height);
|
||||
bar->left = sb_left;
|
||||
bar->top = top;
|
||||
bar->width = sb_width;
|
||||
bar->height = height;
|
||||
|
||||
unblock_input ();
|
||||
}
|
||||
@ -4026,9 +4024,9 @@ w32_scroll_bar_handle_click (struct scroll_bar *bar, W32Msg *msg,
|
||||
emacs_event->timestamp = msg->msg.time;
|
||||
|
||||
{
|
||||
int top_range = VERTICAL_SCROLL_BAR_TOP_RANGE (f, XINT (bar->height));
|
||||
int top_range = VERTICAL_SCROLL_BAR_TOP_RANGE (f, bar->height);
|
||||
int y;
|
||||
int dragging = !NILP (bar->dragging);
|
||||
int dragging = bar->dragging;
|
||||
SCROLLINFO si;
|
||||
|
||||
si.cbSize = sizeof (si);
|
||||
@ -4037,7 +4035,7 @@ w32_scroll_bar_handle_click (struct scroll_bar *bar, W32Msg *msg,
|
||||
GetScrollInfo ((HWND) msg->msg.lParam, SB_CTL, &si);
|
||||
y = si.nPos;
|
||||
|
||||
bar->dragging = Qnil;
|
||||
bar->dragging = 0;
|
||||
FRAME_DISPLAY_INFO (f)->last_mouse_scroll_bar_pos = msg->msg.wParam;
|
||||
|
||||
switch (LOWORD (msg->msg.wParam))
|
||||
@ -4064,9 +4062,9 @@ w32_scroll_bar_handle_click (struct scroll_bar *bar, W32Msg *msg,
|
||||
break;
|
||||
case SB_THUMBTRACK:
|
||||
case SB_THUMBPOSITION:
|
||||
if (VERTICAL_SCROLL_BAR_TOP_RANGE (f, XINT (bar->height)) <= 0xffff)
|
||||
if (VERTICAL_SCROLL_BAR_TOP_RANGE (f, bar->height) <= 0xffff)
|
||||
y = HIWORD (msg->msg.wParam);
|
||||
bar->dragging = Qt;
|
||||
bar->dragging = 1; /* ??????? */
|
||||
emacs_event->part = scroll_bar_handle;
|
||||
|
||||
/* "Silently" update current position. */
|
||||
@ -4090,8 +4088,8 @@ w32_scroll_bar_handle_click (struct scroll_bar *bar, W32Msg *msg,
|
||||
if (dragging)
|
||||
{
|
||||
SCROLLINFO si;
|
||||
int start = XINT (bar->start);
|
||||
int end = XINT (bar->end);
|
||||
int start = bar->start;
|
||||
int end = bar->end;
|
||||
|
||||
si.cbSize = sizeof (si);
|
||||
si.fMask = SIF_PAGE | SIF_POS;
|
||||
@ -4126,7 +4124,7 @@ x_scroll_bar_report_motion (struct frame **fp, Lisp_Object *bar_window,
|
||||
Window w = SCROLL_BAR_W32_WINDOW (bar);
|
||||
struct frame *f = XFRAME (WINDOW_FRAME (XWINDOW (bar->window)));
|
||||
int pos;
|
||||
int top_range = VERTICAL_SCROLL_BAR_TOP_RANGE (f, XINT (bar->height));
|
||||
int top_range = VERTICAL_SCROLL_BAR_TOP_RANGE (f, bar->height);
|
||||
SCROLLINFO si;
|
||||
|
||||
block_input ();
|
||||
@ -4146,7 +4144,7 @@ x_scroll_bar_report_motion (struct frame **fp, Lisp_Object *bar_window,
|
||||
case SB_THUMBPOSITION:
|
||||
case SB_THUMBTRACK:
|
||||
*part = scroll_bar_handle;
|
||||
if (VERTICAL_SCROLL_BAR_TOP_RANGE (f, XINT (bar->height)) <= 0xffff)
|
||||
if (VERTICAL_SCROLL_BAR_TOP_RANGE (f, bar->height) <= 0xffff)
|
||||
pos = HIWORD (dpyinfo->last_mouse_scroll_bar_pos);
|
||||
break;
|
||||
case SB_LINEDOWN:
|
||||
@ -5710,8 +5708,6 @@ x_set_window_size (struct frame *f, int change_gravity, int width, int height, b
|
||||
block_input ();
|
||||
|
||||
check_frame_size (f, &width, &height, pixelwise);
|
||||
f->scroll_bar_actual_width
|
||||
= FRAME_SCROLL_BAR_COLS (f) * FRAME_COLUMN_WIDTH (f);
|
||||
|
||||
compute_fringe_widths (f, 0);
|
||||
|
||||
|
@ -429,7 +429,7 @@ struct scroll_bar {
|
||||
|
||||
/* The position and size of the scroll bar in pixels, relative to the
|
||||
frame. */
|
||||
Lisp_Object top, left, width, height;
|
||||
int top, left, width, height;
|
||||
|
||||
/* The starting and ending positions of the handle, relative to the
|
||||
handle area (i.e. zero is the top position, not
|
||||
@ -442,13 +442,13 @@ struct scroll_bar {
|
||||
drawing handle bottoms VERTICAL_SCROLL_BAR_MIN_HANDLE pixels below
|
||||
where they would be normally; the bottom and top are in a
|
||||
different co-ordinate system. */
|
||||
Lisp_Object start, end;
|
||||
int start, end;
|
||||
|
||||
/* If the scroll bar handle is currently being dragged by the user,
|
||||
this is the number of pixels from the top of the handle to the
|
||||
place where the user grabbed it. If the handle isn't currently
|
||||
being dragged, this is Qnil. */
|
||||
Lisp_Object dragging;
|
||||
int dragging;
|
||||
|
||||
/* 1 if the background of the fringe that is adjacent to a scroll
|
||||
bar is extended to the gap between the fringe and the bar. */
|
||||
|
@ -404,8 +404,6 @@ set_frame_size (EmacsFrame ew)
|
||||
might end up with a frame width that is not a multiple of the
|
||||
frame's character width which is bad for vertically split
|
||||
windows. */
|
||||
f->scroll_bar_actual_width
|
||||
= FRAME_SCROLL_BAR_COLS (f) * FRAME_COLUMN_WIDTH (f);
|
||||
|
||||
compute_fringe_widths (f, 0);
|
||||
|
||||
|
14
src/window.c
14
src/window.c
@ -4001,6 +4001,20 @@ values. */)
|
||||
r->left_col = 0;
|
||||
r->top_line = FRAME_TOP_MARGIN (f);
|
||||
window_resize_apply_total (r, !NILP (horizontal));
|
||||
/* Handle the mini window. */
|
||||
if (FRAME_HAS_MINIBUF_P (f) && !FRAME_MINIBUF_ONLY_P (f))
|
||||
{
|
||||
struct window *m = XWINDOW (f->minibuffer_window);
|
||||
|
||||
if (NILP (horizontal))
|
||||
{
|
||||
m->top_line = r->top_line + r->total_lines;
|
||||
m->total_lines = XFASTINT (m->new_total);
|
||||
}
|
||||
else
|
||||
m->total_cols = XFASTINT (m->new_total);
|
||||
}
|
||||
|
||||
unblock_input ();
|
||||
|
||||
return Qt;
|
||||
|
@ -8537,10 +8537,6 @@ x_set_window_size_1 (struct frame *f, int change_gravity, int width, int height,
|
||||
int pixelwidth, pixelheight;
|
||||
|
||||
check_frame_size (f, &width, &height, pixelwise);
|
||||
f->scroll_bar_actual_width
|
||||
= (!FRAME_HAS_VERTICAL_SCROLL_BARS (f)
|
||||
? 0
|
||||
: FRAME_CONFIG_SCROLL_BAR_COLS (f) * FRAME_COLUMN_WIDTH (f));
|
||||
|
||||
compute_fringe_widths (f, 0);
|
||||
|
||||
@ -8623,10 +8619,7 @@ x_set_window_size (struct frame *f, int change_gravity, int width, int height, b
|
||||
#endif
|
||||
text_width = FRAME_PIXEL_TO_TEXT_WIDTH (f, FRAME_PIXEL_WIDTH (f));
|
||||
text_height = FRAME_PIXEL_TO_TEXT_HEIGHT (f, pixelh);
|
||||
/* Update f->scroll_bar_actual_width because it is used in
|
||||
FRAME_PIXEL_WIDTH_TO_TEXT_COLS. */
|
||||
f->scroll_bar_actual_width
|
||||
= FRAME_SCROLL_BAR_COLS (f) * FRAME_COLUMN_WIDTH (f);
|
||||
|
||||
change_frame_size (f, text_width, text_height, 0, 1, 0, 1);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user