X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/eab3f9e76b8188b5f99139b220a272fe3f2debaf..d6ec146ff9b66a1849932f90f3a5edade28d4579:/src/window.c diff --git a/src/window.c b/src/window.c index be34c49135..cf7fa44ae4 100644 --- a/src/window.c +++ b/src/window.c @@ -7,8 +7,8 @@ This file is part of GNU Emacs. GNU Emacs is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. +the Free Software Foundation, either version 3 of the License, or (at +your option) any later version. GNU Emacs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -671,7 +671,7 @@ DEFUN ("set-window-combination-limit", Fset_window_combination_limit, Sset_windo WINDOW must be a valid window used in horizontal or vertical combination. If LIMIT is nil, child windows of WINDOW can be recombined with WINDOW's siblings. LIMIT t means that child windows of WINDOW are never -(re-)combined with WINDOW's siblings. Other values are reserved for +\(re-)combined with WINDOW's siblings. Other values are reserved for future use. */) (Lisp_Object window, Lisp_Object limit) { @@ -1355,7 +1355,7 @@ DEFUN ("coordinates-in-window-p", Fcoordinates_in_window_p, WINDOW must be a live window and defaults to the selected one. COORDINATES is a cons of the form (X . Y), X and Y being distances measured in characters from the upper-left corner of the frame. -(0 . 0) denotes the character in the upper left corner of the +\(0 . 0) denotes the character in the upper left corner of the frame. If COORDINATES are in the text portion of WINDOW, the coordinates relative to the window are returned. @@ -1741,7 +1741,7 @@ of the window. The remaining elements are omitted if the character after POS is fully visible; otherwise, RTOP and RBOT are the number of pixels off-window at the top and bottom of the screen line ("row") containing POS, ROWH is the visible height of that row, and VPOS is the row number -(zero-based). */) +\(zero-based). */) (Lisp_Object pos, Lisp_Object window, Lisp_Object partially) { struct window *w; @@ -2859,9 +2859,12 @@ selected frame and no others. */) static Lisp_Object -resize_root_window (Lisp_Object window, Lisp_Object delta, Lisp_Object horizontal, Lisp_Object ignore, Lisp_Object pixelwise) +resize_root_window (Lisp_Object window, Lisp_Object delta, + Lisp_Object horizontal, Lisp_Object ignore, + Lisp_Object pixelwise) { - return call5 (Qwindow_resize_root_window, window, delta, horizontal, ignore, pixelwise); + return call5 (Qwindow__resize_root_window, window, delta, + horizontal, ignore, pixelwise); } /* Placeholder used by temacs -nw before window.el is loaded. */ @@ -2877,14 +2880,14 @@ DEFUN ("window--sanitize-window-sizes", Fwindow__sanitize_window_sizes, Lisp_Object sanitize_window_sizes (Lisp_Object frame, Lisp_Object horizontal) { - return call2 (Qwindow_sanitize_window_sizes, frame, horizontal); + return call2 (Qwindow__sanitize_window_sizes, frame, horizontal); } static Lisp_Object window_pixel_to_total (Lisp_Object frame, Lisp_Object horizontal) { - return call2 (Qwindow_pixel_to_total, frame, horizontal); + return call2 (Qwindow__pixel_to_total, frame, horizontal); } @@ -3319,7 +3322,7 @@ run_window_size_change_functions (Lisp_Object frame) while (CONSP (functions)) { if (!EQ (XCAR (functions), Qt)) - call1 (XCAR (functions), frame); + safe_call1 (XCAR (functions), frame); functions = XCDR (functions); } @@ -4064,9 +4067,11 @@ values. */) } -/* Resize frame F's windows when number of lines of F is set to SIZE. - HORFLAG means resize windows when number of columns of F is set to - SIZE. PIXELWISE means to interpret SIZE as pixels. */ +/* Resize frame F's windows when F's width or height is set to SIZE. + If HORFLAG is zero, F's width was set to SIZE, otherwise its height + was set. SIZE is interpreted in F's canonical character units + (a.k.a. "columns" or "lines"), unless PIXELWISE is non-zero, which + means to interpret SIZE in pixel units. */ void resize_frame_windows (struct frame *f, int size, bool horflag, bool pixelwise) { @@ -4167,7 +4172,7 @@ resize_frame_windows (struct frame *f, int size, bool horflag, bool pixelwise) m = XWINDOW (mini); if (horflag) { - m->total_cols = size; + m->total_cols = new_size; m->pixel_width = new_pixel_size; } else @@ -4583,7 +4588,7 @@ grow_mini_window (struct window *w, int delta, bool pixelwise) { root = FRAME_ROOT_WINDOW (f); r = XWINDOW (root); - height = call3 (Qwindow_resize_root_window_vertically, + height = call3 (Qwindow__resize_root_window_vertically, root, make_number (- delta), pixelwise ? Qt : Qnil); if (INTEGERP (height) && window_resize_check (r, false)) { @@ -4617,6 +4622,9 @@ grow_mini_window (struct window *w, int delta, bool pixelwise) adjust_frame_glyphs (f); unblock_input (); } + else + error ("Failed to grow minibuffer window"); + } } @@ -4637,7 +4645,7 @@ shrink_mini_window (struct window *w, bool pixelwise) { root = FRAME_ROOT_WINDOW (f); r = XWINDOW (root); - delta = call3 (Qwindow_resize_root_window_vertically, + delta = call3 (Qwindow__resize_root_window_vertically, root, make_number (height - unit), pixelwise ? Qt : Qnil); if (INTEGERP (delta) && window_resize_check (r, false)) @@ -4660,6 +4668,8 @@ shrink_mini_window (struct window *w, bool pixelwise) one window frame here. The same routine will be needed when shrinking the frame (and probably when making the initial *scratch* window). For the moment leave things as they are. */ + else + error ("Failed to shrink minibuffer window"); } } @@ -7302,10 +7312,11 @@ syms_of_window (void) DEFSYM (Qwindow_valid_p, "window-valid-p"); DEFSYM (Qwindow_deletable_p, "window-deletable-p"); DEFSYM (Qdelete_window, "delete-window"); - DEFSYM (Qwindow_resize_root_window, "window--resize-root-window"); - DEFSYM (Qwindow_resize_root_window_vertically, "window--resize-root-window-vertically"); - DEFSYM (Qwindow_sanitize_window_sizes, "window--sanitize-window-sizes"); - DEFSYM (Qwindow_pixel_to_total, "window--pixel-to-total"); + DEFSYM (Qwindow__resize_root_window, "window--resize-root-window"); + DEFSYM (Qwindow__resize_root_window_vertically, + "window--resize-root-window-vertically"); + DEFSYM (Qwindow__sanitize_window_sizes, "window--sanitize-window-sizes"); + DEFSYM (Qwindow__pixel_to_total, "window--pixel-to-total"); DEFSYM (Qsafe, "safe"); DEFSYM (Qdisplay_buffer, "display-buffer"); DEFSYM (Qreplace_buffer_in_windows, "replace-buffer-in-windows");