diff options
author | Martin Rudalics <rudalics@gmx.at> | 2021-04-27 09:53:42 +0200 |
---|---|---|
committer | Martin Rudalics <rudalics@gmx.at> | 2021-04-27 09:53:42 +0200 |
commit | a190b4cfd8b6f42a91678ac7292e1cceccd168e7 (patch) | |
tree | a9e0d6af2a038ba3d506218c2866255c90818f46 /src/frame.h | |
parent | 40a1e94f4c0cbe6633bc7ed42b006271c4e4b114 (diff) | |
download | emacs-a190b4cfd8b6f42a91678ac7292e1cceccd168e7.tar.gz |
Major rewrite of adjust_frame_size
Have adjust_frame_size pass native frame sizes to backends
instead of text sizes. Expand frame size history management.
Drop PIXELWISE argument from change_frame_size and convert
native to text sizes only when calling adjust_frame_size. Use
convention in arguments that -1 instead of 0 means that no size
change is required. When adjusting frame sizes pick up delayed
size changes (Bug#46827).
* lisp/frame.el (frame-notice-user-settings, make-frame): Don't
set frame size history.
(frame--size-history): Rewrite doc-string. Handle new formats
of `frame-size-history' entries.
* src/dispextern.h (delayed_size_change): Extern it.
(change_frame_size): Drop last argument from extern.
* src/dispnew.c (delayed_size_change): Make it global.
(handle_window_change_signal): Reformat. Drop last argument
from change_frame_size call.
(do_pending_window_change, init_display_interactive): Drop last
argument from change_frame_size call.
(change_frame_size_1): NEW_WIDTH and NEW_HEIGHT now specify
native sizes. Drop last argument PIXELWISE. Queue a change
when it either differs from F's current pixel sizes or F's
previously queued sizes. Inject frame_size_history_extra call
when queuing. Adopt convention that for queued sizes -1 means
that no size change is required. Convert from native to text
sizes when calling adjust_frame_size.
(change_frame_size): Drop last argument PIXELWISE and drop it
also in change_frame_size_1 calls.
* src/frame.c (frame_size_history_add): Remove.
(frame_inhibit_resize): Remove call to frame_size_history_add.
(set_menu_bar_lines, set_tab_bar_lines): Simplify. Drop last
argument from change_frame_size call.
(frame_windows_min_size): No more static.
(keep_ratio): Minor rewrite using macros.
(frame_size_history_adjust, frame_size_history_plain)
(frame_size_history_extra): New functions.
(adjust_frame_size): Major rewrite. Adopt new convention that
negative values for new sizes mean no change. Pick up delayed
size changes from F's new_width and new_height slots
(Bug#46827). Call set_window_size_hook with native instead of
text sizes. Do not sanitize window sizes any more. Call
frame_size_history_adjust instead of frame_size_history_add.
Always set F's resized_p slot to true.
(make_frame): Initialize new_width and new_height slots to -1.
Simplify setup of initial sizes and an adjust_frame_size call.
(Fframe_parameters): Drop processing F's new_pixelwise slot.
(check_frame_pixels): Reorder to make declarations appear first.
(Fset_frame_height, Fset_frame_width, Fset_frame_size): Pass
explicit width and height values to adjust_frame_size instead of
-1.
(gui_set_frame_parameters): Minor rewrite making sure that
explicit sizes and the corresponding parameter are passed to
adjust_frame_size. Remove frame_size_history_add call.
(gui_figure_window_size): Drop last two arguments. Simplify
assignment of initial size. Set new_height and new_width slots
to -1. Use adjust_frame_size to set sizes instead of returning
them to caller.
(syms_of_frame): Drop symbols used by frame size history; these
are now built on-the-fly. Also drop some menu bar related
symbols in favor of Qmenu_bar_lines.
* src/frame.h (struct frame): Remove new_pixelwise.
(SET_FRAME_COLS, SET_FRAME_LINES, SET_FRAME_WIDTH)
(SET_FRAME_HEIGHT): Remove macros.
(frame_size_history_add): Remove externs.
(frame_windows_min_size, frame_size_history_plain)
(frame_size_history_extra): Add externs.
(FRAME_WINDOWS_WIDTH, FRAME_WINDOWS_HEIGHT): Rename to
FRAME_INNER_WIDTH and FRAME_INNER_HEIGHT.
(gui_figure_window_size): Drop last two arguments from
extern.
* src/gtkutil.c (xg_frame_resized): Rename arguments to WIDTH
and HEIGHT. Consult delayed_size_change to handle case where
WIDTH and HEIGHT do not match F's new_width and new_height
values. Call change_frame_size with native sizes and without
PIXELWISE argument. Instead of frame_size_history_add call
frame_size_history_extra.
(xg_frame_set_char_size): WIDTH and HEIGHT are native sizes now;
fix adjust_frame_size call accordingly. Instead of
frame_size_history_add call frame_size_history_extra.
(style_changed_cb): Call xg_frame_set_char_size with native
instead of text sizes.
(tb_size_cb): Remove frame_size_history_add call. Call
adjust_frame_size with INHIBIT 5.
(free_frame_tool_bar, xg_change_toolbar_position): Remove
frame_size_history_add call.
(update_frame_tool_bar): Call adjust_frame_size with INHIBIT 2
and let it handle frame_inhibit_implied_resize and
fullheight/-width. Remove frame_size_history_add call.
* src/keyboard.c (Fsuspend_emacs): Call change_frame_size with
native sizes.
* src/nsfns.m (ns_set_tool_bar_lines): Call adjust_frame_size
with INHIBIT 2 and let it handle frame_inhibit_implied_resize
and fullheight/-width. Remove frame_size_history_add call.
(Fx_create_frame): Drop two last arguments in
gui_figure_window_size call. Do not SET_FRAME_WIDTH and
SET_FRAME_HEIGHT, the adjust_frame_size in
gui_figure_window_size did that already.
* src/nsterm.m (ns_set_window_size): Drop PIXELWISE argument and
its processing; WIDTH and HEIGHT represent native pixel sizes
now. Call change_frame_size with native sizes. Remove call to
frame_size_history_add.
([EmacsView viewDidResize:]): Call change_frame_size with native
sizes.
* src/term.c (Fresume_tty): Call change_frame_size with native
sizes.
* src/termhooks.h (*set_window_size_hook): Drop last argument
PIXELWISE.
* src/w32fns.c (w32_change_tab_bar_height)
(w32_change_tool_bar_height): Fix handling of these in the initial
phase before they have been resized at least once.
(Fx_create_frame, w32_create_tip_frame): Drop two last arguments
in gui_figure_window_size call. Do not SET_FRAME_WIDTH and
SET_FRAME_HEIGHT (or SET_FRAME_COLS and SET_FRAME_LINES), the
adjust_frame_size in gui_figure_window_size did that already.
* src/w32inevt.c (resize_event, maybe_generate_resize_event):
Pass native sizes to change_frame_size.
* src/w32term.c (w32_read_socket): When WM_WINDOWPOSCHANGED pass
native sizes to change_frame_size.
(w32_new_font): Recalculate FRAME_TAB_BAR_HEIGHT. Simplify
code.
(w32fullscreen_hook): Call change_frame_size with native sizes.
(w32_set_window_size): Drop argument PIXELWISE and its
processing; WIDTH and HEIGHT are native sizes now. Remove
frame_size_history_add calls. Pass native sizes to
change_frame_size.
* src/widget.c (set_frame_size): Set width and height of widget
directly. Call frame_size_history_plain instead of
frame_size_history_add.
(update_from_various_frame_slots): Call
frame_size_history_extra.
(EmacsFrameRealize): Call frame_size_history_plain.
(EmacsFrameResize): Call change_frame_size with native sizes.
Call frame_size_history_extra instead of frame_size_history_add.
(EmacsFrameSetCharSize): Call frame_size_history_extra. Drop
PIXELWISE argument in x_set_window_size call and specify pixels.
(pixel_to_text_size): Remove function.
* src/xdisp.c (resize_mini_window): Replace FRAME_WINDOWS_HEIGHT
with FRAME_INNER_HEIGHT.
(redisplay_tab_bar): Don't set tab_bar_redisplayed when we did
not redisplay it.
(redisplay_tool_bar): Don't call it for external tool bar.
Don't set tool_bar_redisplayed when we did not redisplay it.
(redisplay_window): When the tool bar is external call
update_frame_tool_bar directly.
* src/xfns.c (x_set_menu_bar_lines): Call adjust_frame_size only
if number of menu bar lines changed and fix 6th argument.
(x_change_tab_bar_height, x_change_tool_bar_height): Fix
handling of these in the initial phase before they have been
resized at least once.
(Fx_create_frame, x_create_tip_frame): Drop two last arguments
in gui_figure_window_size call. Do not SET_FRAME_WIDTH and
SET_FRAME_HEIGHT (or SET_FRAME_COLS and SET_FRAME_LINES), the
adjust_frame_size in gui_figure_window_size did that already.
* src/xmenu.c (update_frame_menubar): Fix 6th arg of
adjust_frame_size call.
(free_frame_menubar): For Motif frames fix fullscreen and
`frame-inhibit-implied-resize' handling. Fix 6th arg of
adjust_frame_size calls.
* src/xterm.c (x_net_wm_state): Remove call to
frame_size_history_add.
(handle_one_xevent): For PropertyNotify and UnmapNotify events
add frame_size_history_plain calls. For MapNotify and
ConfigureNotify events add a frame_size_history_extra call. For
ConfigureNotify events also handle delayed size changes and call
change_frame_size with native sizes.
(x_new_font): Recalculate FRAME_TAB_BAR_HEIGHT. Simplify code.
(x_handle_net_wm_state): Remove frame_size_history_add call.
(x_check_fullscreen): Remove frame_size_history_add call. Call
change_frame_size with native height.
(x_set_window_size_1): WIDTH and HEIGHT are now native. Remove
some frame_size_history_add calls and add frame_size_history_extra
calls instead. If the frame is not visible call adjust_frame_size
directly instead of calling change_frame_size.
(x_set_window_size): Drop PIXELWISE argument. WIDTH and HEIGHT
represent native sizes now.
(x_make_frame_visible, x_make_frame_invisible): Call
frame_size_history_plain.
* src/xterm.h (x_set_window_size): Drop last argument from
extern declaration.
Diffstat (limited to 'src/frame.h')
-rw-r--r-- | src/frame.h | 213 |
1 files changed, 72 insertions, 141 deletions
diff --git a/src/frame.h b/src/frame.h index 0fd95e4dd3c..19ee6ac10e7 100644 --- a/src/frame.h +++ b/src/frame.h @@ -256,8 +256,8 @@ struct frame be used for output. */ bool_bf glyphs_initialized_p : 1; - /* Set to true in change_frame_size when size of frame changed - Clear the frame in clear_garbaged_frames if set. */ + /* Set to true in adjust_frame_size when one of the frame's sizes + changed. Clear the frame in clear_garbaged_frames if set. */ bool_bf resized_p : 1; /* Set to true if the default face for the frame has been @@ -415,10 +415,6 @@ struct frame bool_bf no_special_glyphs : 1; #endif /* HAVE_WINDOW_SYSTEM */ - /* Whether new_height and new_width shall be interpreted - in pixels. */ - bool_bf new_pixelwise : 1; - /* True means set_window_size_hook requests can be processed for this frame. */ bool_bf can_set_window_size : 1; @@ -426,11 +422,23 @@ struct frame /* Set to true after this frame was made by `make-frame'. */ bool_bf after_make_frame : 1; - /* Whether the tab bar height change should be taken into account. */ + /* Two sticky flags, that are both false when a frame is created. + 'display_tab_bar' sets the former to true the first time it + displays the tab bar. When the former is true, the next call of + 'x_change_tab_bar_height' and associates sets the latter true and + tries to adjust the frame height in a way that the now valid pixel + height of the tab bar is taken into account by the frame's native + height. */ bool_bf tab_bar_redisplayed : 1; bool_bf tab_bar_resized : 1; - /* Whether the tool bar height change should be taken into account. */ + /* Two sticky flags, that are both false when a frame is created. + 'redisplay_tool_bar' sets the former to true the first time it + displays the tool bar. When the former is true, the next call of + 'x_change_tool_bar_height' and associates sets the latter true and + tries to adjust the frame height in a way that the now valid pixel + height of the tool bar is taken into account by the frame's native + height. */ bool_bf tool_bar_redisplayed : 1; bool_bf tool_bar_resized : 1; @@ -461,7 +469,7 @@ struct frame last time run_window_change_functions was called on it. */ ptrdiff_t number_of_windows; - /* Number of lines (rounded up) of tab bar. REMOVE THIS */ + /* Number of frame lines (rounded up) of tab bar. */ int tab_bar_lines; /* Height of frame internal tab bar in pixels. */ @@ -470,7 +478,7 @@ struct frame int n_tab_bar_rows; int n_tab_bar_items; - /* Number of lines (rounded up) of tool bar. REMOVE THIS */ + /* Number of frame lines (rounded up) of tool bar. */ int tool_bar_lines; /* Height of frame internal tool bar in pixels. */ @@ -492,39 +500,24 @@ struct frame /* Cost of deleting n lines on this frame. */ int *delete_n_lines_cost; - /* Text width of this frame (excluding fringes, vertical scroll bar - and internal border widths) and text height (excluding menu bar, - tool bar, horizontal scroll bar and internal border widths) in - units of canonical characters. */ + /* Text width and height of this frame in (and maybe rounded to) frame + columns and lines. */ int text_cols, text_lines; - - /* Total width of this frame (including fringes, vertical scroll bar - and internal border widths) and total height (including menu bar, - tool bar, horizontal scroll bar and internal border widths) in - units of canonical characters. */ - int total_cols, total_lines; - - /* Text width of this frame (excluding fringes, vertical scroll bar - and internal border widths) and text height (excluding menu bar, - tool bar, horizontal scroll bar and internal border widths) in - pixels. */ + /* Text width and height of this frame in pixels. */ int text_width, text_height; - /* New text height and width for pending size change. 0 if no change - pending. These values represent pixels or canonical character units - according to the value of new_pixelwise and correlate to the - text width/height of the frame. */ + /* Native width of this frame in (and maybe rounded to) frame columns + and lines. */ + int total_cols, total_lines; + /* Native width and height of this frame in pixels. */ + int pixel_width, pixel_height; + /* New native width and height of this frame for pending size change, + in pixels. -1 if no change pending. */ int new_width, new_height; /* Pixel position of the frame window (x and y offsets in root window). */ int left_pos, top_pos; - /* Total width of this frame (including fringes, vertical scroll bar - and internal border widths) and total height (including internal - menu and tool bars, horizontal scroll bar and internal border - widths) in pixels. */ - int pixel_width, pixel_height; - /* This is the gravity value for the specified window position. */ int win_gravity; @@ -848,7 +841,6 @@ default_pixels_per_inch_y (void) /* FRAME_WINDOW_P tests whether the frame is a graphical window system frame. */ - #ifdef HAVE_X_WINDOWS #define FRAME_WINDOW_P(f) FRAME_X_P (f) #endif @@ -914,45 +906,36 @@ default_pixels_per_inch_y (void) # define FRAME_SCALE_FACTOR(f) 1 #endif -/* Pixel width of frame F. */ +/* Native width and height of frame F, in pixels and frame + columns/lines. */ #define FRAME_PIXEL_WIDTH(f) ((f)->pixel_width) - -/* Pixel height of frame F. */ #define FRAME_PIXEL_HEIGHT(f) ((f)->pixel_height) +#define FRAME_TOTAL_COLS(f) ((f)->total_cols) +#define FRAME_TOTAL_LINES(f) ((f)->total_lines) -/* Width of frame F, measured in canonical character columns, - not including scroll bars if any. */ -#define FRAME_COLS(f) (f)->text_cols - -/* Height of frame F, measured in canonical lines, including - non-toolkit menu bar and non-toolkit tool bar lines. */ -#define FRAME_LINES(f) (f)->text_lines - -/* Width of frame F, measured in pixels not including the width for - fringes, scroll bar, and internal borders. */ +/* Text width and height of frame F, in pixels and frame + columns/lines. */ #define FRAME_TEXT_WIDTH(f) (f)->text_width - -/* Height of frame F, measured in pixels not including the height - for scroll bar and internal borders. */ #define FRAME_TEXT_HEIGHT(f) (f)->text_height +#define FRAME_COLS(f) ((f)->text_cols) +#define FRAME_LINES(f) ((f)->text_lines) -/* Number of lines of frame F used for menu bar. - This is relevant on terminal frames and on - X Windows when not using the X toolkit. - These lines are counted in FRAME_LINES. */ -#define FRAME_MENU_BAR_LINES(f) (f)->menu_bar_lines +/* True if this frame should display an external menu bar. */ +#ifdef HAVE_EXT_MENU_BAR +#define FRAME_EXTERNAL_MENU_BAR(f) (f)->external_menu_bar +#else +#define FRAME_EXTERNAL_MENU_BAR(f) false +#endif -/* Pixel height of frame F's menu bar. */ +/* Size of frame F's internal menu bar in frame lines and pixels. */ +#define FRAME_MENU_BAR_LINES(f) (f)->menu_bar_lines #define FRAME_MENU_BAR_HEIGHT(f) (f)->menu_bar_height -/* Number of lines of frame F used for the tab-bar. */ +/* Size of frame F's tab bar in frame lines and pixels. */ #define FRAME_TAB_BAR_LINES(f) (f)->tab_bar_lines - -/* Pixel height of frame F's tab-bar. */ #define FRAME_TAB_BAR_HEIGHT(f) (f)->tab_bar_height -/* True if this frame should display a tool bar - in a way that does not use any text lines. */ +/* True if this frame should display an external tool bar. */ #ifdef HAVE_EXT_TOOL_BAR #define FRAME_EXTERNAL_TOOL_BAR(f) (f)->external_tool_bar #else @@ -966,27 +949,21 @@ default_pixels_per_inch_y (void) #define FRAME_TOOL_BAR_POSITION(f) ((void) (f), Qtop) #endif -/* Number of lines of frame F used for the tool-bar. */ +/* Size of frame F's internal tool bar in frame lines and pixels. */ #define FRAME_TOOL_BAR_LINES(f) (f)->tool_bar_lines - -/* Pixel height of frame F's tool-bar. */ #define FRAME_TOOL_BAR_HEIGHT(f) (f)->tool_bar_height -/* Lines above the top-most window in frame F. */ -#define FRAME_TOP_MARGIN(F) \ - (FRAME_MENU_BAR_LINES (F) + FRAME_TAB_BAR_LINES (F) + FRAME_TOOL_BAR_LINES (F)) +/* Height of frame F's top margin in frame lines. */ +#define FRAME_TOP_MARGIN(F) \ + (FRAME_MENU_BAR_LINES (F) \ + + FRAME_TAB_BAR_LINES (F) \ + + FRAME_TOOL_BAR_LINES (F)) /* Pixel height of frame F's top margin. */ -#define FRAME_TOP_MARGIN_HEIGHT(F) \ - (FRAME_MENU_BAR_HEIGHT (F) + FRAME_TAB_BAR_HEIGHT (F) + FRAME_TOOL_BAR_HEIGHT (F)) - -/* True if this frame should display a menu bar - in a way that does not use any text lines. */ -#ifdef HAVE_EXT_MENU_BAR -#define FRAME_EXTERNAL_MENU_BAR(f) (f)->external_menu_bar -#else -#define FRAME_EXTERNAL_MENU_BAR(f) false -#endif +#define FRAME_TOP_MARGIN_HEIGHT(F) \ + (FRAME_MENU_BAR_HEIGHT (F) \ + + FRAME_TAB_BAR_HEIGHT (F) \ + + FRAME_TOOL_BAR_HEIGHT (F)) /* True if frame F is currently visible. */ #define FRAME_VISIBLE_P(f) (f)->visible @@ -1183,48 +1160,6 @@ default_pixels_per_inch_y (void) ? FRAME_CONFIG_SCROLL_BAR_LINES (f) \ : 0) -/* Total width of frame F, in columns (characters), - including the width used by scroll bars if any. */ -#define FRAME_TOTAL_COLS(f) ((f)->total_cols) - -/* Total height of frame F, in lines (characters), - including the height used by scroll bars if any. */ -#define FRAME_TOTAL_LINES(f) ((f)->total_lines) - -/* Set the character widths of frame F. WIDTH specifies a nominal - character text width. */ -#define SET_FRAME_COLS(f, width) \ - ((f)->text_cols = (width), \ - (f)->total_cols = ((width) \ - + FRAME_SCROLL_BAR_COLS (f) \ - + FRAME_FRINGE_COLS (f))) - -/* Set the character heights of frame F. HEIGHT specifies a nominal - character text height. */ -#define SET_FRAME_LINES(f, height) \ - ((f)->text_lines = (height), \ - (f)->total_lines = ((height) \ - + FRAME_TOP_MARGIN (f) \ - + FRAME_SCROLL_BAR_LINES (f))) - -/* Set the widths of frame F. WIDTH specifies a nominal pixel text - width. */ -#define SET_FRAME_WIDTH(f, width) \ - ((f)->text_width = (width), \ - (f)->pixel_width = ((width) \ - + FRAME_SCROLL_BAR_AREA_WIDTH (f) \ - + FRAME_TOTAL_FRINGE_WIDTH (f) \ - + 2 * FRAME_INTERNAL_BORDER_WIDTH (f))) - -/* Set the heights of frame F. HEIGHT specifies a nominal pixel text - height. */ -#define SET_FRAME_HEIGHT(f, height) \ - ((f)->text_height = (height), \ - (f)->pixel_height = ((height) \ - + FRAME_TOP_MARGIN_HEIGHT (f) \ - + FRAME_SCROLL_BAR_AREA_HEIGHT (f) \ - + 2 * FRAME_INTERNAL_BORDER_WIDTH (f))) - /* Maximum + 1 legitimate value for FRAME_CURSOR_X. */ #define FRAME_CURSOR_X_LIMIT(f) \ (FRAME_COLS (f) + FRAME_LEFT_SCROLL_BAR_COLS (f)) @@ -1245,7 +1180,6 @@ default_pixels_per_inch_y (void) #define FRAME_BACKGROUND_PIXEL(f) ((f)->background_pixel) /* Return a pointer to the face cache of frame F. */ - #define FRAME_FACE_CACHE(F) (F)->face_cache /* Return the size of message_buf of the frame F. We multiply the @@ -1271,15 +1205,13 @@ default_pixels_per_inch_y (void) This macro is a holdover from a time when multiple frames weren't always supported. An alternate definition of the macro would expand to something which executes the statement once. */ - -#define FOR_EACH_FRAME(list_var, frame_var) \ - for ((list_var) = Vframe_list; \ - (CONSP (list_var) \ +#define FOR_EACH_FRAME(list_var, frame_var) \ + for ((list_var) = Vframe_list; \ + (CONSP (list_var) \ && (frame_var = XCAR (list_var), true)); \ list_var = XCDR (list_var)) /* Reflect mouse movement when a complete frame update is performed. */ - #define FRAME_MOUSE_UPDATE(frame) \ do { \ Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (frame); \ @@ -1294,8 +1226,7 @@ default_pixels_per_inch_y (void) } while (false) /* Handy macro to construct an argument to Fmodify_frame_parameters. */ - -#define AUTO_FRAME_ARG(name, parameter, value) \ +#define AUTO_FRAME_ARG(name, parameter, value) \ AUTO_LIST1 (name, AUTO_CONS_EXPR (parameter, value)) /* False means there are no visible garbaged frames. */ @@ -1305,7 +1236,6 @@ extern bool frame_garbaged; We call redisplay_other_windows to make sure the frame gets redisplayed if some changes were applied to it while it wasn't visible (and hence wasn't redisplayed). */ - INLINE void SET_FRAME_VISIBLE (struct frame *f, int v) { @@ -1320,9 +1250,8 @@ SET_FRAME_VISIBLE (struct frame *f, int v) f->visible = v; } -/* Set iconify of frame F. */ - -#define SET_FRAME_ICONIFIED(f, i) \ +/* Set iconified status of frame F. */ +#define SET_FRAME_ICONIFIED(f, i) \ (f)->iconified = (eassert (0 <= (i) && (i) <= 1), (i)) extern Lisp_Object selected_frame; @@ -1369,11 +1298,14 @@ extern void frame_make_pointer_invisible (struct frame *); extern void frame_make_pointer_visible (struct frame *); extern Lisp_Object delete_frame (Lisp_Object, Lisp_Object); extern bool frame_inhibit_resize (struct frame *, bool, Lisp_Object); -extern void adjust_frame_size (struct frame *, int, int, int, bool, Lisp_Object); -extern void frame_size_history_add (struct frame *f, Lisp_Object fun_symbol, - int width, int height, Lisp_Object rest); +extern void adjust_frame_size (struct frame *, int, int, int, bool, + Lisp_Object); extern Lisp_Object mouse_position (bool); - +extern int frame_windows_min_size (Lisp_Object, Lisp_Object, Lisp_Object, + Lisp_Object); +extern void frame_size_history_plain (struct frame *, Lisp_Object); +extern void frame_size_history_extra (struct frame *, Lisp_Object, + int, int, int, int, int, int); extern Lisp_Object Vframe_list; /* Value is a pointer to the selected frame. If the selected frame @@ -1652,12 +1584,11 @@ IMAGE_OPT_FROM_ID (struct frame *f, int id) - FRAME_SCROLL_BAR_AREA_HEIGHT (f) \ - 2 * FRAME_INTERNAL_BORDER_WIDTH (f)) -/* Return the width/height reserved for the windows of frame F. */ -#define FRAME_WINDOWS_WIDTH(f) \ +#define FRAME_INNER_WIDTH(f) \ (FRAME_PIXEL_WIDTH (f) \ - 2 * FRAME_INTERNAL_BORDER_WIDTH (f)) -#define FRAME_WINDOWS_HEIGHT(f) \ +#define FRAME_INNER_HEIGHT(f) \ (FRAME_PIXEL_HEIGHT (f) \ - FRAME_TOP_MARGIN_HEIGHT (f) \ - 2 * FRAME_INTERNAL_BORDER_WIDTH (f)) @@ -1701,7 +1632,7 @@ extern void gui_set_horizontal_scroll_bars (struct frame *, Lisp_Object, Lisp_Ob extern void gui_set_scroll_bar_width (struct frame *, Lisp_Object, Lisp_Object); extern void gui_set_scroll_bar_height (struct frame *, Lisp_Object, Lisp_Object); -extern long gui_figure_window_size (struct frame *, Lisp_Object, bool, bool, int *, int *); +extern long gui_figure_window_size (struct frame *, Lisp_Object, bool, bool); extern void gui_set_alpha (struct frame *, Lisp_Object, Lisp_Object); extern void gui_set_no_special_glyphs (struct frame *, Lisp_Object, Lisp_Object); |