Remove unused code and reformat to 70 columns.
This commit is contained in:
parent
457a7edb47
commit
3f981a0a89
20 changed files with 134 additions and 248 deletions
|
@ -1348,8 +1348,8 @@ button. @xref{Repeat Events}.
|
|||
@var{position} slot of a click event, you should typically use the
|
||||
functions documented in @ref{Accessing Mouse}. The explicit format of
|
||||
the list depends on where the click occurred. For clicks in the text
|
||||
area, mode line, header line, tab line, or in the fringe or marginal areas, the
|
||||
mouse position list has the form
|
||||
area, mode line, header line, tab line, or in the fringe or marginal
|
||||
areas, the mouse position list has the form
|
||||
|
||||
@example
|
||||
(@var{window} @var{pos-or-area} (@var{x} . @var{y}) @var{timestamp}
|
||||
|
@ -1368,8 +1368,9 @@ The window in which the click occurred.
|
|||
The buffer position of the character clicked on in the text area; or,
|
||||
if the click was outside the text area, the window area where it
|
||||
occurred. It is one of the symbols @code{mode-line},
|
||||
@code{header-line}, @code{tab-line}, @code{vertical-line}, @code{left-margin},
|
||||
@code{right-margin}, @code{left-fringe}, or @code{right-fringe}.
|
||||
@code{header-line}, @code{tab-line}, @code{vertical-line},
|
||||
@code{left-margin}, @code{right-margin}, @code{left-fringe}, or
|
||||
@code{right-fringe}.
|
||||
|
||||
In one special case, @var{pos-or-area} is a list containing a symbol
|
||||
(one of the symbols listed above) instead of just the symbol. This
|
||||
|
@ -1380,12 +1381,12 @@ by Emacs. @xref{Key Sequence Input}.
|
|||
The relative pixel coordinates of the click. For clicks in the text
|
||||
area of a window, the coordinate origin @code{(0 . 0)} is taken to be
|
||||
the top left corner of the text area. @xref{Window Sizes}. For
|
||||
clicks in a mode line, header line or tab line, the coordinate origin is the top
|
||||
left corner of the window itself. For fringes, margins, and the
|
||||
vertical border, @var{x} does not have meaningful data. For fringes
|
||||
and margins, @var{y} is relative to the bottom edge of the header
|
||||
line. In all cases, the @var{x} and @var{y} coordinates increase
|
||||
rightward and downward respectively.
|
||||
clicks in a mode line, header line or tab line, the coordinate origin
|
||||
is the top left corner of the window itself. For fringes, margins,
|
||||
and the vertical border, @var{x} does not have meaningful data.
|
||||
For fringes and margins, @var{y} is relative to the bottom edge of the
|
||||
header line. In all cases, the @var{x} and @var{y} coordinates
|
||||
increase rightward and downward respectively.
|
||||
|
||||
@item @var{timestamp}
|
||||
The time at which the event occurred, as an integer number of
|
||||
|
@ -1407,18 +1408,18 @@ The position in the string where the click occurred.
|
|||
@item @var{text-pos}
|
||||
For clicks on a marginal area or on a fringe, this is the buffer
|
||||
position of the first visible character in the corresponding line in
|
||||
the window. For clicks on the mode line, the header line or the tab line, this is
|
||||
@code{nil}. For other events, it is the buffer position closest to
|
||||
the click.
|
||||
the window. For clicks on the mode line, the header line or the tab
|
||||
line, this is @code{nil}. For other events, it is the buffer position
|
||||
closest to the click.
|
||||
|
||||
@item @var{col}, @var{row}
|
||||
These are the actual column and row coordinate numbers of the glyph
|
||||
under the @var{x}, @var{y} position. If @var{x} lies beyond the last
|
||||
column of actual text on its line, @var{col} is reported by adding
|
||||
fictional extra columns that have the default character width. Row 0
|
||||
is taken to be the header line if the window has one, or Row 1
|
||||
if the window also has the tab line, or the topmost
|
||||
row of the text area otherwise. Column 0 is taken to be the leftmost
|
||||
fictional extra columns that have the default character width.
|
||||
Row 0 is taken to be the header line if the window has one, or Row 1
|
||||
if the window also has the tab line, or the topmost row of
|
||||
the text area otherwise. Column 0 is taken to be the leftmost
|
||||
column of the text area for clicks on a window text area, or the
|
||||
leftmost mode line or header line column for clicks there. For clicks
|
||||
on fringes or vertical borders, these have no meaningful data. For
|
||||
|
@ -2095,7 +2096,8 @@ computed values.)
|
|||
|
||||
Note that @var{row} is counted from the top of the text area. If the
|
||||
window given by @var{position} possesses a header line (@pxref{Header
|
||||
Lines}) or a tab line, they are @emph{not} included in the @var{row} count.
|
||||
Lines}) or a tab line, they are @emph{not} included in the @var{row}
|
||||
count.
|
||||
@end defun
|
||||
|
||||
@defun posn-actual-col-row position
|
||||
|
|
4
etc/NEWS
4
etc/NEWS
|
@ -1885,7 +1885,7 @@ good replacement, even in very large source files.
|
|||
|
||||
** 'tab-bar-mode' enables the tab-bar at the top of each frame,
|
||||
to switch named persistent window configurations in it using tabs.
|
||||
New tab-based keybindings (similar to frame-based):
|
||||
New tab-based keybindings (similar to frame-based commands):
|
||||
'C-x 6 2' creates a new tab;
|
||||
'C-x 6 0' deletes the current tab;
|
||||
'C-x 6 b' switches to buffer in another tab;
|
||||
|
@ -1897,7 +1897,7 @@ Also it's possible to switch named persistent window configurations
|
|||
without having graphical access to the tab-bar, even on a tty
|
||||
or when 'tab-bar-mode' is disabled, with these commands:
|
||||
'tab-new' creates a new window configuration;
|
||||
'tab-delete' deletes the current window configuration;
|
||||
'tab-close' deletes the current window configuration;
|
||||
'tab-select' switches to the window configuration by its name;
|
||||
'tab-previous' switches to the previous window configuration;
|
||||
'tab-next' switches to the next window configuration;
|
||||
|
|
|
@ -591,7 +591,6 @@ since it could result in memory overflow and make Emacs crash."
|
|||
(const :tag "Text-image-horiz" :value text-image-horiz)
|
||||
(const :tag "System default" :value nil)) "24.1")
|
||||
(tool-bar-max-label-size frames integer "24.1")
|
||||
(tab-bar-max-label-size frames integer "27.1")
|
||||
(auto-hscroll-mode scrolling
|
||||
(choice
|
||||
(const :tag "Don't scroll automatically"
|
||||
|
|
|
@ -731,9 +731,7 @@ It is the default value of the variable `top-level'."
|
|||
("--background-color" . "-bg")
|
||||
("--color" . "-color")))
|
||||
|
||||
(defconst tab-bar-images-pixel-height 18
|
||||
"Height in pixels of images in the tab-bar.")
|
||||
|
||||
;; FIXME: this var unused?
|
||||
(defconst tool-bar-images-pixel-height 24
|
||||
"Height in pixels of images in the tool-bar.")
|
||||
|
||||
|
|
|
@ -488,7 +488,7 @@ specified by `tab-bar-close-tab-select'."
|
|||
(unless tab-bar-mode
|
||||
(message "Added new tab with the current window configuration")))
|
||||
|
||||
(defun tab-delete ()
|
||||
(defun tab-close ()
|
||||
"Delete the current window configuration without clicking a close button."
|
||||
(interactive)
|
||||
(tab-bar-close-current-tab)
|
||||
|
|
|
@ -3200,48 +3200,17 @@ enum tab_bar_item_idx
|
|||
/* Caption. */
|
||||
TAB_BAR_ITEM_CAPTION,
|
||||
|
||||
/* Image(s) to display. This is either a single image specification
|
||||
or a vector of specifications. */
|
||||
TAB_BAR_ITEM_IMAGES,
|
||||
|
||||
/* The binding. */
|
||||
TAB_BAR_ITEM_BINDING,
|
||||
|
||||
/* Button type. One of nil (default button), t (a separator),
|
||||
`:radio', or `:toggle'. The latter two currently do nothing. */
|
||||
TAB_BAR_ITEM_TYPE,
|
||||
|
||||
/* Help string. */
|
||||
TAB_BAR_ITEM_HELP,
|
||||
|
||||
/* Icon file name of right to left image when an RTL locale is used. */
|
||||
TAB_BAR_ITEM_RTL_IMAGE,
|
||||
|
||||
/* Label to show when text labels are enabled. */
|
||||
TAB_BAR_ITEM_LABEL,
|
||||
|
||||
/* If we shall show the label only below the icon and not beside it. */
|
||||
TAB_BAR_ITEM_VERT_ONLY,
|
||||
|
||||
/* Sentinel = number of slots in tab_bar_items occupied by one
|
||||
tab-bar item. */
|
||||
TAB_BAR_ITEM_NSLOTS
|
||||
};
|
||||
|
||||
|
||||
/* An enumeration for the different images that can be specified
|
||||
for a tab-bar item. */
|
||||
|
||||
enum tab_bar_item_image
|
||||
{
|
||||
TAB_BAR_IMAGE_ENABLED_SELECTED,
|
||||
TAB_BAR_IMAGE_ENABLED_DESELECTED,
|
||||
TAB_BAR_IMAGE_DISABLED_SELECTED,
|
||||
TAB_BAR_IMAGE_DISABLED_DESELECTED
|
||||
};
|
||||
|
||||
#define DEFAULT_TAB_BAR_LABEL_SIZE 14
|
||||
|
||||
/* Default values of the above variables. */
|
||||
|
||||
#define DEFAULT_TAB_BAR_BUTTON_MARGIN 4
|
||||
|
|
|
@ -456,8 +456,10 @@ adjust_glyph_matrix (struct window *w, struct glyph_matrix *matrix, int x, int y
|
|||
|| (row == matrix->rows + dim.height - 1
|
||||
&& window_wants_mode_line (w))
|
||||
|| (row == matrix->rows && matrix->tab_line_p)
|
||||
|| (row == matrix->rows && !matrix->tab_line_p && matrix->header_line_p)
|
||||
|| (row == (matrix->rows + 1) && matrix->tab_line_p && matrix->header_line_p))
|
||||
|| (row == matrix->rows
|
||||
&& !matrix->tab_line_p && matrix->header_line_p)
|
||||
|| (row == (matrix->rows + 1)
|
||||
&& matrix->tab_line_p && matrix->header_line_p))
|
||||
{
|
||||
row->glyphs[TEXT_AREA]
|
||||
= row->glyphs[LEFT_MARGIN_AREA];
|
||||
|
@ -504,8 +506,10 @@ adjust_glyph_matrix (struct window *w, struct glyph_matrix *matrix, int x, int y
|
|||
if ((row == matrix->rows + dim.height - 1
|
||||
&& !(w && window_wants_mode_line (w)))
|
||||
|| (row == matrix->rows && matrix->tab_line_p)
|
||||
|| (row == matrix->rows && !matrix->tab_line_p && matrix->header_line_p)
|
||||
|| (row == (matrix->rows + 1) && matrix->tab_line_p && matrix->header_line_p))
|
||||
|| (row == matrix->rows
|
||||
&& !matrix->tab_line_p && matrix->header_line_p)
|
||||
|| (row == (matrix->rows + 1)
|
||||
&& matrix->tab_line_p && matrix->header_line_p))
|
||||
{
|
||||
row->glyphs[TEXT_AREA]
|
||||
= row->glyphs[LEFT_MARGIN_AREA];
|
||||
|
@ -3550,7 +3554,8 @@ update_window (struct window *w, bool force_p)
|
|||
/* Try reusing part of the display by copying. */
|
||||
if (row < end && !desired_matrix->no_scrolling_p)
|
||||
{
|
||||
int rc = scrolling_window (w, (tab_line_row != NULL ? 1 : 0) + (header_line_row != NULL ? 1 : 0));
|
||||
int rc = scrolling_window (w, (tab_line_row != NULL ? 1 : 0)
|
||||
+ (header_line_row != NULL ? 1 : 0));
|
||||
if (rc < 0)
|
||||
{
|
||||
/* All rows were found to be equal. */
|
||||
|
@ -5428,7 +5433,8 @@ buffer_posn_from_coords (struct window *w, int *x, int *y, struct display_pos *p
|
|||
start position, i.e. it excludes the header-line row, but
|
||||
MATRIX_ROW includes the header-line row. Adjust for a possible
|
||||
header-line row. */
|
||||
it_vpos = it.vpos + window_wants_header_line (w) + window_wants_tab_line (w);
|
||||
it_vpos = it.vpos + window_wants_header_line (w)
|
||||
+ window_wants_tab_line (w);
|
||||
if (it_vpos < w->current_matrix->nrows
|
||||
&& (row = MATRIX_ROW (w->current_matrix, it_vpos),
|
||||
row->enabled_p))
|
||||
|
@ -5675,7 +5681,8 @@ handle_window_change_signal (int sig)
|
|||
structures now. Let that be done later outside of the
|
||||
signal handler. */
|
||||
change_frame_size (XFRAME (frame), width,
|
||||
height - FRAME_MENU_BAR_LINES (XFRAME (frame)) - FRAME_TAB_BAR_LINES (XFRAME (frame)),
|
||||
height - FRAME_MENU_BAR_LINES (XFRAME (frame))
|
||||
- FRAME_TAB_BAR_LINES (XFRAME (frame)),
|
||||
0, 1, 0, 0);
|
||||
}
|
||||
}
|
||||
|
@ -6355,7 +6362,8 @@ init_display_interactive (void)
|
|||
change_frame_size (XFRAME (selected_frame),
|
||||
FrameCols (t->display_info.tty),
|
||||
FrameRows (t->display_info.tty)
|
||||
- FRAME_MENU_BAR_LINES (f) - FRAME_TAB_BAR_LINES (f), 0, 0, 1, 0);
|
||||
- FRAME_MENU_BAR_LINES (f)
|
||||
- FRAME_TAB_BAR_LINES (f), 0, 0, 1, 0);
|
||||
|
||||
/* Delete the initial terminal. */
|
||||
if (--initial_terminal->reference_count == 0
|
||||
|
|
31
src/frame.c
31
src/frame.c
|
@ -1191,10 +1191,12 @@ make_terminal_frame (struct terminal *terminal)
|
|||
|
||||
FRAME_MENU_BAR_LINES (f) = NILP (Vmenu_bar_mode) ? 0 : 1;
|
||||
FRAME_TAB_BAR_LINES (f) = NILP (Vtab_bar_mode) ? 0 : 1;
|
||||
FRAME_LINES (f) = FRAME_LINES (f) - FRAME_MENU_BAR_LINES (f) - FRAME_TAB_BAR_LINES (f);
|
||||
FRAME_LINES (f) = FRAME_LINES (f) - FRAME_MENU_BAR_LINES (f)
|
||||
- FRAME_TAB_BAR_LINES (f);
|
||||
FRAME_MENU_BAR_HEIGHT (f) = FRAME_MENU_BAR_LINES (f) * FRAME_LINE_HEIGHT (f);
|
||||
FRAME_TAB_BAR_HEIGHT (f) = FRAME_TAB_BAR_LINES (f) * FRAME_LINE_HEIGHT (f);
|
||||
FRAME_TEXT_HEIGHT (f) = FRAME_TEXT_HEIGHT (f) - FRAME_MENU_BAR_HEIGHT (f) - FRAME_TAB_BAR_HEIGHT (f);
|
||||
FRAME_TEXT_HEIGHT (f) = FRAME_TEXT_HEIGHT (f) - FRAME_MENU_BAR_HEIGHT (f)
|
||||
- FRAME_TAB_BAR_HEIGHT (f);
|
||||
|
||||
/* Set the top frame to the newly created frame. */
|
||||
if (FRAMEP (FRAME_TTY (f)->top_frame)
|
||||
|
@ -1316,7 +1318,8 @@ affects all frames on the same terminal device. */)
|
|||
{
|
||||
int width, height;
|
||||
get_tty_size (fileno (FRAME_TTY (f)->input), &width, &height);
|
||||
adjust_frame_size (f, width, height - FRAME_MENU_BAR_LINES (f) - FRAME_TAB_BAR_LINES (f),
|
||||
adjust_frame_size (f, width, height - FRAME_MENU_BAR_LINES (f)
|
||||
- FRAME_TAB_BAR_LINES (f),
|
||||
5, 0, Qterminal_frame);
|
||||
}
|
||||
|
||||
|
@ -3444,23 +3447,6 @@ to `frame-height'). */)
|
|||
return make_fixnum (FRAME_TOTAL_LINES (f));
|
||||
}
|
||||
|
||||
DEFUN ("tab-bar-pixel-width", Ftab_bar_pixel_width,
|
||||
Stab_bar_pixel_width, 0, 1, 0,
|
||||
doc: /* Return width in pixels of FRAME's tab bar.
|
||||
The result is greater than zero only when the tab bar is on the left
|
||||
or right side of FRAME. If FRAME is omitted or nil, the selected frame
|
||||
is used. */)
|
||||
(Lisp_Object frame)
|
||||
{
|
||||
#ifdef FRAME_TABBAR_WIDTH
|
||||
struct frame *f = decode_any_frame (frame);
|
||||
|
||||
if (FRAME_WINDOW_P (f))
|
||||
return make_fixnum (FRAME_TABBAR_WIDTH (f));
|
||||
#endif
|
||||
return make_fixnum (0);
|
||||
}
|
||||
|
||||
DEFUN ("tool-bar-pixel-width", Ftool_bar_pixel_width,
|
||||
Stool_bar_pixel_width, 0, 1, 0,
|
||||
doc: /* Return width in pixels of FRAME's tool bar.
|
||||
|
@ -5464,8 +5450,8 @@ On Nextstep, this just calls `ns-parse-geometry'. */)
|
|||
#define DEFAULT_COLS 80
|
||||
|
||||
long
|
||||
gui_figure_window_size (struct frame *f, Lisp_Object parms, bool tabbar_p, bool toolbar_p,
|
||||
int *x_width, int *x_height)
|
||||
gui_figure_window_size (struct frame *f, Lisp_Object parms, bool tabbar_p,
|
||||
bool toolbar_p, int *x_width, int *x_height)
|
||||
{
|
||||
Lisp_Object height, width, user_size, top, left, user_position;
|
||||
long window_prompting = 0;
|
||||
|
@ -6425,7 +6411,6 @@ iconify the top level frame instead. */);
|
|||
defsubr (&Sframe_internal_border_width);
|
||||
defsubr (&Sright_divider_width);
|
||||
defsubr (&Sbottom_divider_width);
|
||||
defsubr (&Stab_bar_pixel_width);
|
||||
defsubr (&Stool_bar_pixel_width);
|
||||
defsubr (&Sset_frame_height);
|
||||
defsubr (&Sset_frame_width);
|
||||
|
|
12
src/fringe.c
12
src/fringe.c
|
@ -634,7 +634,8 @@ draw_fringe_bitmap_1 (struct window *w, struct glyph_row *row, int left_p, int o
|
|||
/* Clear left fringe if no bitmap to draw or if bitmap doesn't fill
|
||||
the fringe. */
|
||||
p.bx = -1;
|
||||
header_line_height = WINDOW_TAB_LINE_HEIGHT (w) + WINDOW_HEADER_LINE_HEIGHT (w);
|
||||
header_line_height = WINDOW_TAB_LINE_HEIGHT (w)
|
||||
+ WINDOW_HEADER_LINE_HEIGHT (w);
|
||||
p.by = WINDOW_TO_FRAME_PIXEL_Y (w, max (header_line_height, row->y));
|
||||
p.ny = row->visible_height;
|
||||
if (left_p)
|
||||
|
@ -1091,7 +1092,8 @@ update_window_fringes (struct window *w, bool keep_current_p)
|
|||
struct glyph_row *row1;
|
||||
int top_ind_max_y;
|
||||
|
||||
top_ind_min_y = WINDOW_TAB_LINE_HEIGHT (w) + WINDOW_HEADER_LINE_HEIGHT (w);
|
||||
top_ind_min_y = WINDOW_TAB_LINE_HEIGHT (w)
|
||||
+ WINDOW_HEADER_LINE_HEIGHT (w);
|
||||
top_ind_max_y = top_ind_min_y + fb->height;
|
||||
if (top_ind_max_y > yb)
|
||||
top_ind_max_y = yb;
|
||||
|
@ -1148,8 +1150,10 @@ update_window_fringes (struct window *w, bool keep_current_p)
|
|||
|
||||
bot_ind_max_y = row->y + row->visible_height;
|
||||
bot_ind_min_y = bot_ind_max_y - fb->height;
|
||||
if (bot_ind_min_y < WINDOW_TAB_LINE_HEIGHT (w) + WINDOW_HEADER_LINE_HEIGHT (w))
|
||||
bot_ind_min_y = WINDOW_TAB_LINE_HEIGHT (w) + WINDOW_HEADER_LINE_HEIGHT (w);
|
||||
if (bot_ind_min_y < WINDOW_TAB_LINE_HEIGHT (w)
|
||||
+ WINDOW_HEADER_LINE_HEIGHT (w))
|
||||
bot_ind_min_y = WINDOW_TAB_LINE_HEIGHT (w)
|
||||
+ WINDOW_HEADER_LINE_HEIGHT (w);
|
||||
|
||||
for (y = row->y, rn = bot_ind_rn - 1;
|
||||
y >= bot_ind_min_y && rn >= 0;
|
||||
|
|
|
@ -951,8 +951,8 @@ xg_frame_set_char_size (struct frame *f, int width, int height)
|
|||
Lisp_Object fullscreen = get_frame_param (f, Qfullscreen);
|
||||
gint gwidth, gheight;
|
||||
int totalheight
|
||||
= pixelheight + FRAME_TOOLBAR_HEIGHT (f) + FRAME_TABBAR_HEIGHT (f) + FRAME_MENUBAR_HEIGHT (f);
|
||||
int totalwidth = pixelwidth + FRAME_TABBAR_WIDTH (f) + FRAME_TOOLBAR_WIDTH (f);
|
||||
= pixelheight + FRAME_TOOLBAR_HEIGHT (f) + FRAME_MENUBAR_HEIGHT (f);
|
||||
int totalwidth = pixelwidth + FRAME_TOOLBAR_WIDTH (f);
|
||||
|
||||
if (FRAME_PIXEL_HEIGHT (f) == 0)
|
||||
return;
|
||||
|
@ -1437,9 +1437,9 @@ x_wm_set_size_hint (struct frame *f, long int flags, bool user_position)
|
|||
/* Use one row/col here so base_height/width does not become zero.
|
||||
Gtk+ and/or Unity on Ubuntu 12.04 can't handle it.
|
||||
Obviously this makes the row/col value displayed off by 1. */
|
||||
base_width = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, 1) + FRAME_TABBAR_WIDTH (f) + FRAME_TOOLBAR_WIDTH (f);
|
||||
base_width = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, 1) + FRAME_TOOLBAR_WIDTH (f);
|
||||
base_height = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, 1)
|
||||
+ FRAME_MENUBAR_HEIGHT (f) + FRAME_TABBAR_HEIGHT (f) + FRAME_TOOLBAR_HEIGHT (f);
|
||||
+ FRAME_MENUBAR_HEIGHT (f) + FRAME_TOOLBAR_HEIGHT (f);
|
||||
|
||||
size_hints.base_width = base_width;
|
||||
size_hints.base_height = base_height;
|
||||
|
|
|
@ -2385,7 +2385,8 @@ read_char (int commandflag, Lisp_Object map,
|
|||
if (used_mouse_menu
|
||||
/* Also check was_disabled so last-nonmenu-event won't return
|
||||
a bad value when submenus are involved. (Bug#447) */
|
||||
&& (EQ (c, Qtool_bar) || EQ (c, Qtab_bar) || EQ (c, Qmenu_bar) || was_disabled))
|
||||
&& (EQ (c, Qtool_bar) || EQ (c, Qtab_bar) || EQ (c, Qmenu_bar)
|
||||
|| was_disabled))
|
||||
*used_mouse_menu = true;
|
||||
|
||||
goto reread_for_input_method;
|
||||
|
@ -5043,14 +5044,15 @@ make_lispy_position (struct frame *f, Lisp_Object x, Lisp_Object y,
|
|||
/* For mode line and header line clicks, return X, Y relative to
|
||||
the left window edge. Use mode_line_string to look for a
|
||||
string on the click position. */
|
||||
else if (part == ON_MODE_LINE || part == ON_TAB_LINE || part == ON_HEADER_LINE)
|
||||
else if (part == ON_MODE_LINE || part == ON_TAB_LINE
|
||||
|| part == ON_HEADER_LINE)
|
||||
{
|
||||
Lisp_Object string;
|
||||
ptrdiff_t charpos;
|
||||
|
||||
posn = (part == ON_MODE_LINE ? Qmode_line
|
||||
: (part == ON_TAB_LINE ? Qtab_line
|
||||
: Qheader_line));
|
||||
: (part == ON_TAB_LINE ? Qtab_line
|
||||
: Qheader_line));
|
||||
|
||||
/* Note that mode_line_string takes COL, ROW as pixels and
|
||||
converts them to characters. */
|
||||
|
@ -8115,7 +8117,6 @@ parse_tab_bar_item (Lisp_Object key, Lisp_Object item)
|
|||
Lisp_Object filter = Qnil;
|
||||
Lisp_Object caption;
|
||||
int i;
|
||||
bool have_label = false;
|
||||
|
||||
/* Definition looks like `(menu-item CAPTION BINDING PROPS...)'.
|
||||
Rule out items that aren't lists, don't start with
|
||||
|
@ -8164,12 +8165,6 @@ parse_tab_bar_item (Lisp_Object key, Lisp_Object item)
|
|||
{
|
||||
if (menu_separator_name_p (SSDATA (caption)))
|
||||
{
|
||||
set_prop_tab_bar (TAB_BAR_ITEM_TYPE, Qt);
|
||||
/* If we use build_desired_tab_bar_string to render the
|
||||
tab bar, the separator is rendered as an image. */
|
||||
set_prop_tab_bar (TAB_BAR_ITEM_IMAGES,
|
||||
(menu_item_eval_property
|
||||
(Vtab_bar_separator_image_expression)));
|
||||
set_prop_tab_bar (TAB_BAR_ITEM_ENABLED_P, Qnil);
|
||||
set_prop_tab_bar (TAB_BAR_ITEM_SELECTED_P, Qnil);
|
||||
set_prop_tab_bar (TAB_BAR_ITEM_CAPTION, Qnil);
|
||||
|
@ -8212,17 +8207,6 @@ parse_tab_bar_item (Lisp_Object key, Lisp_Object item)
|
|||
else if (EQ (ikey, QChelp))
|
||||
/* `:help HELP-STRING'. */
|
||||
set_prop_tab_bar (TAB_BAR_ITEM_HELP, value);
|
||||
else if (EQ (ikey, QCvert_only))
|
||||
/* `:vert-only t/nil'. */
|
||||
set_prop_tab_bar (TAB_BAR_ITEM_VERT_ONLY, value);
|
||||
else if (EQ (ikey, QClabel))
|
||||
{
|
||||
const char *bad_label = "!!?GARBLED ITEM?!!";
|
||||
/* `:label LABEL-STRING'. */
|
||||
set_prop_tab_bar (TAB_BAR_ITEM_LABEL,
|
||||
STRINGP (value) ? value : build_string (bad_label));
|
||||
have_label = true;
|
||||
}
|
||||
else if (EQ (ikey, QCfilter))
|
||||
/* ':filter FORM'. */
|
||||
filter = value;
|
||||
|
@ -8236,64 +8220,8 @@ parse_tab_bar_item (Lisp_Object key, Lisp_Object item)
|
|||
if (EQ (type, QCtoggle) || EQ (type, QCradio))
|
||||
{
|
||||
set_prop_tab_bar (TAB_BAR_ITEM_SELECTED_P, selected);
|
||||
set_prop_tab_bar (TAB_BAR_ITEM_TYPE, type);
|
||||
}
|
||||
}
|
||||
else if (EQ (ikey, QCimage)
|
||||
&& (CONSP (value)
|
||||
|| (VECTORP (value) && ASIZE (value) == 4)))
|
||||
/* Value is either a single image specification or a vector
|
||||
of 4 such specifications for the different button states. */
|
||||
set_prop_tab_bar (TAB_BAR_ITEM_IMAGES, value);
|
||||
else if (EQ (ikey, QCrtl))
|
||||
/* ':rtl STRING' */
|
||||
set_prop_tab_bar (TAB_BAR_ITEM_RTL_IMAGE, value);
|
||||
}
|
||||
|
||||
|
||||
if (!have_label)
|
||||
{
|
||||
/* Try to make one from caption and key. */
|
||||
Lisp_Object tkey = PROP (TAB_BAR_ITEM_KEY);
|
||||
Lisp_Object tcapt = PROP (TAB_BAR_ITEM_CAPTION);
|
||||
const char *label = SYMBOLP (tkey) ? SSDATA (SYMBOL_NAME (tkey)) : "";
|
||||
const char *capt = STRINGP (tcapt) ? SSDATA (tcapt) : "";
|
||||
ptrdiff_t max_lbl_size =
|
||||
2 * max (0, min (tab_bar_max_label_size, STRING_BYTES_BOUND / 2)) + 1;
|
||||
char *buf = xmalloc (max_lbl_size);
|
||||
Lisp_Object new_lbl;
|
||||
ptrdiff_t caption_len = strnlen (capt, max_lbl_size);
|
||||
|
||||
if (0 < caption_len && caption_len < max_lbl_size)
|
||||
{
|
||||
strcpy (buf, capt);
|
||||
while (caption_len > 0 && buf[caption_len - 1] == '.')
|
||||
caption_len--;
|
||||
buf[caption_len] = '\0';
|
||||
label = capt = buf;
|
||||
}
|
||||
|
||||
ptrdiff_t label_len = strnlen (label, max_lbl_size);
|
||||
if (0 < label_len && label_len < max_lbl_size)
|
||||
{
|
||||
ptrdiff_t j;
|
||||
if (label != buf)
|
||||
strcpy (buf, label);
|
||||
|
||||
for (j = 0; buf[j] != '\0'; ++j)
|
||||
if (buf[j] == '-')
|
||||
buf[j] = ' ';
|
||||
label = buf;
|
||||
}
|
||||
else
|
||||
label = "";
|
||||
|
||||
new_lbl = Fupcase_initials (build_string (label));
|
||||
if (SCHARS (new_lbl) <= tab_bar_max_label_size)
|
||||
set_prop_tab_bar (TAB_BAR_ITEM_LABEL, new_lbl);
|
||||
else
|
||||
set_prop_tab_bar (TAB_BAR_ITEM_LABEL, empty_unibyte_string);
|
||||
xfree (buf);
|
||||
}
|
||||
|
||||
/* If got a filter apply it on binding. */
|
||||
|
@ -10711,7 +10639,8 @@ On such systems, Emacs starts a subshell instead of suspending. */)
|
|||
get_tty_size (fileno (CURTTY ()->input), &width, &height);
|
||||
if (width != old_width || height != old_height)
|
||||
change_frame_size (SELECTED_FRAME (), width,
|
||||
height - FRAME_MENU_BAR_LINES (SELECTED_FRAME ()) - FRAME_TAB_BAR_LINES (SELECTED_FRAME ()),
|
||||
height - FRAME_MENU_BAR_LINES (SELECTED_FRAME ())
|
||||
- FRAME_TAB_BAR_LINES (SELECTED_FRAME ()),
|
||||
0, 0, 0, 0);
|
||||
|
||||
run_hook (intern ("suspend-resume-hook"));
|
||||
|
|
|
@ -3663,7 +3663,8 @@ be preferred. */);
|
|||
DEFSYM (Qmode_line, "mode-line");
|
||||
|
||||
staticpro (&Vmouse_events);
|
||||
Vmouse_events = pure_list (Qmenu_bar, Qtab_bar, Qtool_bar, Qtab_line, Qheader_line, Qmode_line,
|
||||
Vmouse_events = pure_list (Qmenu_bar, Qtab_bar, Qtool_bar,
|
||||
Qtab_line, Qheader_line, Qmode_line,
|
||||
intern_c_string ("mouse-1"),
|
||||
intern_c_string ("mouse-2"),
|
||||
intern_c_string ("mouse-3"),
|
||||
|
|
|
@ -2342,7 +2342,8 @@ frame's terminal). */)
|
|||
was suspended. */
|
||||
get_tty_size (fileno (t->display_info.tty->input), &width, &height);
|
||||
if (width != old_width || height != old_height)
|
||||
change_frame_size (f, width, height - FRAME_MENU_BAR_LINES (f) - FRAME_TAB_BAR_LINES (f),
|
||||
change_frame_size (f, width, height - FRAME_MENU_BAR_LINES (f)
|
||||
- FRAME_TAB_BAR_LINES (f),
|
||||
0, 0, 0, 0);
|
||||
SET_FRAME_VISIBLE (XFRAME (t->display_info.tty->top_frame), 1);
|
||||
}
|
||||
|
|
|
@ -5994,7 +5994,8 @@ w32_draw_window_cursor (struct window *w, struct glyph_row *glyph_row,
|
|||
= (WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y)
|
||||
+ glyph_row->ascent - w->phys_cursor_ascent);
|
||||
w32_system_caret_window = w;
|
||||
w32_system_caret_hdr_height = WINDOW_TAB_LINE_HEIGHT (w) + WINDOW_HEADER_LINE_HEIGHT (w);
|
||||
w32_system_caret_hdr_height = WINDOW_TAB_LINE_HEIGHT (w)
|
||||
+ WINDOW_HEADER_LINE_HEIGHT (w);
|
||||
w32_system_caret_mode_height = WINDOW_MODE_LINE_HEIGHT (w);
|
||||
|
||||
PostMessage (hwnd, WM_IME_STARTCOMPOSITION, 0, 0);
|
||||
|
|
22
src/window.c
22
src/window.c
|
@ -1321,7 +1321,8 @@ coordinates_in_window (register struct window *w, int x, int y)
|
|||
&& y < top_y + CURRENT_TAB_LINE_HEIGHT (w)
|
||||
&& (part = ON_TAB_LINE))
|
||||
|| (window_wants_header_line (w)
|
||||
&& y < top_y + CURRENT_TAB_LINE_HEIGHT (w) + CURRENT_HEADER_LINE_HEIGHT (w)
|
||||
&& y < top_y + CURRENT_TAB_LINE_HEIGHT (w)
|
||||
+ CURRENT_HEADER_LINE_HEIGHT (w)
|
||||
&& (part = ON_HEADER_LINE)))
|
||||
{
|
||||
/* If it's under/over the scroll bar portion of the mode/header
|
||||
|
@ -5808,8 +5809,9 @@ window_scroll_pixel_based (Lisp_Object window, int n, bool whole, bool noerror)
|
|||
move_it_to (&it, PT, -1, -1, -1, MOVE_TO_POS);
|
||||
if (IT_CHARPOS (it) == PT
|
||||
&& it.current_y >= this_scroll_margin
|
||||
&& it.current_y <= last_y - WINDOW_TAB_LINE_HEIGHT (w) - WINDOW_HEADER_LINE_HEIGHT (w)
|
||||
&& (NILP (Vscroll_preserve_screen_position)
|
||||
&& it.current_y <= last_y - WINDOW_TAB_LINE_HEIGHT (w)
|
||||
- WINDOW_HEADER_LINE_HEIGHT (w)
|
||||
&& (NILP (Vscroll_preserve_screen_position)
|
||||
|| EQ (Vscroll_preserve_screen_position, Qt)))
|
||||
/* We found PT at a legitimate height. Leave it alone. */
|
||||
;
|
||||
|
@ -5824,7 +5826,8 @@ window_scroll_pixel_based (Lisp_Object window, int n, bool whole, bool noerror)
|
|||
is necessary because we set it.current_y to 0, above. */
|
||||
move_it_to (&it, -1,
|
||||
window_scroll_pixel_based_preserve_x,
|
||||
goal_y - WINDOW_TAB_LINE_HEIGHT (w) - WINDOW_HEADER_LINE_HEIGHT (w),
|
||||
goal_y - WINDOW_TAB_LINE_HEIGHT (w)
|
||||
- WINDOW_HEADER_LINE_HEIGHT (w),
|
||||
-1, MOVE_TO_Y | MOVE_TO_X);
|
||||
}
|
||||
|
||||
|
@ -5860,8 +5863,9 @@ window_scroll_pixel_based (Lisp_Object window, int n, bool whole, bool noerror)
|
|||
/* We subtract WINDOW_HEADER_LINE_HEIGHT because
|
||||
it.y is relative to the bottom of the header
|
||||
line, see above. */
|
||||
(it.last_visible_y - WINDOW_TAB_LINE_HEIGHT (w) - WINDOW_HEADER_LINE_HEIGHT (w)
|
||||
- partial_line_height (&it) - this_scroll_margin - 1),
|
||||
(it.last_visible_y - WINDOW_TAB_LINE_HEIGHT (w)
|
||||
- WINDOW_HEADER_LINE_HEIGHT (w)
|
||||
- partial_line_height (&it) - this_scroll_margin - 1),
|
||||
-1,
|
||||
MOVE_TO_POS | MOVE_TO_Y);
|
||||
|
||||
|
@ -5899,13 +5903,15 @@ window_scroll_pixel_based (Lisp_Object window, int n, bool whole, bool noerror)
|
|||
if (it.what == IT_EOB)
|
||||
partial_p =
|
||||
it.current_y + it.ascent + it.descent
|
||||
> it.last_visible_y - this_scroll_margin - WINDOW_TAB_LINE_HEIGHT (w) - WINDOW_HEADER_LINE_HEIGHT (w);
|
||||
> it.last_visible_y - this_scroll_margin
|
||||
- WINDOW_TAB_LINE_HEIGHT (w) - WINDOW_HEADER_LINE_HEIGHT (w);
|
||||
else
|
||||
{
|
||||
move_it_by_lines (&it, 1);
|
||||
partial_p =
|
||||
it.current_y
|
||||
> it.last_visible_y - this_scroll_margin - WINDOW_TAB_LINE_HEIGHT (w) - WINDOW_HEADER_LINE_HEIGHT (w);
|
||||
> it.last_visible_y - this_scroll_margin
|
||||
- WINDOW_TAB_LINE_HEIGHT (w) - WINDOW_HEADER_LINE_HEIGHT (w);
|
||||
}
|
||||
|
||||
if (charpos == PT && !partial_p
|
||||
|
|
52
src/xdisp.c
52
src/xdisp.c
|
@ -1809,7 +1809,7 @@ pos_visible_p (struct window *w, ptrdiff_t charpos, int *x, int *y,
|
|||
*rowh = max (0, (min (it2.current_y + it2.max_ascent + it2.max_descent,
|
||||
it.last_visible_y)
|
||||
- max (max (it2.current_y,
|
||||
WINDOW_TAB_LINE_HEIGHT (w)),
|
||||
WINDOW_TAB_LINE_HEIGHT (w)),
|
||||
WINDOW_HEADER_LINE_HEIGHT (w))));
|
||||
*vpos = it2.vpos;
|
||||
if (it2.bidi_it.paragraph_dir == R2L)
|
||||
|
@ -2532,8 +2532,8 @@ remember_mouse_glyph (struct frame *f, int gx, int gy, NativeRectangle *rect)
|
|||
gr = (part == ON_TAB_LINE
|
||||
? MATRIX_TAB_LINE_ROW (w->current_matrix)
|
||||
: (part == ON_HEADER_LINE
|
||||
? MATRIX_HEADER_LINE_ROW (w->current_matrix)
|
||||
: MATRIX_MODE_LINE_ROW (w->current_matrix)));
|
||||
? MATRIX_HEADER_LINE_ROW (w->current_matrix)
|
||||
: MATRIX_MODE_LINE_ROW (w->current_matrix)));
|
||||
gy = gr->y;
|
||||
area = TEXT_AREA;
|
||||
goto text_glyph_row_found;
|
||||
|
@ -2579,7 +2579,8 @@ remember_mouse_glyph (struct frame *f, int gx, int gy, NativeRectangle *rect)
|
|||
gx += (x / width) * width;
|
||||
}
|
||||
|
||||
if (part != ON_MODE_LINE && part != ON_HEADER_LINE && part != ON_TAB_LINE)
|
||||
if (part != ON_MODE_LINE && part != ON_HEADER_LINE
|
||||
&& part != ON_TAB_LINE)
|
||||
{
|
||||
gx += window_box_left_offset (w, area);
|
||||
/* Don't expand over the modeline to make sure the vertical
|
||||
|
@ -2594,7 +2595,8 @@ remember_mouse_glyph (struct frame *f, int gx, int gy, NativeRectangle *rect)
|
|||
gx = (x / width) * width;
|
||||
y -= gy;
|
||||
gy += (y / height) * height;
|
||||
if (part != ON_MODE_LINE && part != ON_HEADER_LINE && part != ON_TAB_LINE)
|
||||
if (part != ON_MODE_LINE && part != ON_HEADER_LINE
|
||||
&& part != ON_TAB_LINE)
|
||||
/* See comment above. */
|
||||
height = min (height,
|
||||
max (0, WINDOW_BOX_HEIGHT_NO_MODE_LINE (w) - gy));
|
||||
|
@ -12688,7 +12690,9 @@ display_tab_bar (struct window *w)
|
|||
|
||||
#if defined (USE_X_TOOLKIT) || defined (USE_GTK)
|
||||
eassert (!FRAME_WINDOW_P (f));
|
||||
init_iterator (&it, w, -1, -1, f->desired_matrix->rows + (FRAME_MENU_BAR_LINES (f) > 0 ? 1 : 0), TAB_BAR_FACE_ID);
|
||||
init_iterator (&it, w, -1, -1, f->desired_matrix->rows
|
||||
+ (FRAME_MENU_BAR_LINES (f) > 0 ? 1 : 0),
|
||||
TAB_BAR_FACE_ID);
|
||||
it.first_visible_x = 0;
|
||||
it.last_visible_x = FRAME_PIXEL_WIDTH (f);
|
||||
#elif defined (HAVE_X_WINDOWS) /* X without toolkit. */
|
||||
|
@ -12708,7 +12712,8 @@ display_tab_bar (struct window *w)
|
|||
{
|
||||
/* This is a TTY frame, i.e. character hpos/vpos are used as
|
||||
pixel x/y. */
|
||||
init_iterator (&it, w, -1, -1, f->desired_matrix->rows + (FRAME_MENU_BAR_LINES (f) > 0 ? 1 : 0),
|
||||
init_iterator (&it, w, -1, -1, f->desired_matrix->rows
|
||||
+ (FRAME_MENU_BAR_LINES (f) > 0 ? 1 : 0),
|
||||
TAB_BAR_FACE_ID);
|
||||
it.first_visible_x = 0;
|
||||
it.last_visible_x = FRAME_COLS (f);
|
||||
|
@ -17164,7 +17169,8 @@ compute_window_start_on_continuation_line (struct window *w)
|
|||
|
||||
/* Find the start of the continued line. This should be fast
|
||||
because find_newline is fast (newline cache). */
|
||||
row = w->desired_matrix->rows + window_wants_tab_line (w) + window_wants_header_line (w);
|
||||
row = w->desired_matrix->rows + window_wants_tab_line (w)
|
||||
+ window_wants_header_line (w);
|
||||
init_iterator (&it, w, CHARPOS (start_pos), BYTEPOS (start_pos),
|
||||
row, DEFAULT_FACE_ID);
|
||||
reseat_at_previous_visible_line_start (&it);
|
||||
|
@ -18677,7 +18683,7 @@ redisplay_window (Lisp_Object window, bool just_this_one_p)
|
|||
/* This means that the window has a mode line. */
|
||||
&& (window_wants_mode_line (w)
|
||||
|| window_wants_header_line (w)
|
||||
|| window_wants_tab_line (w)))
|
||||
|| window_wants_tab_line (w)))
|
||||
{
|
||||
|
||||
display_mode_lines (w);
|
||||
|
@ -20822,7 +20828,8 @@ do nothing. */)
|
|||
EMACS_INT vpos;
|
||||
|
||||
if (NILP (row))
|
||||
vpos = WINDOWP (sf->tab_bar_window) ? 0 : FRAME_MENU_BAR_LINES (sf) > 0 ? 1 : 0;
|
||||
vpos = WINDOWP (sf->tab_bar_window) ? 0 :
|
||||
FRAME_MENU_BAR_LINES (sf) > 0 ? 1 : 0;
|
||||
else
|
||||
{
|
||||
CHECK_FIXNUM (row);
|
||||
|
@ -32350,8 +32357,8 @@ note_mode_line_or_margin_highlight (Lisp_Object window, int x, int y,
|
|||
row = (area == ON_MODE_LINE
|
||||
? MATRIX_MODE_LINE_ROW (w->current_matrix)
|
||||
: (area == ON_TAB_LINE
|
||||
? MATRIX_TAB_LINE_ROW (w->current_matrix)
|
||||
: MATRIX_HEADER_LINE_ROW (w->current_matrix)));
|
||||
? MATRIX_TAB_LINE_ROW (w->current_matrix)
|
||||
: MATRIX_HEADER_LINE_ROW (w->current_matrix)));
|
||||
|
||||
/* Find the glyph under the mouse pointer. */
|
||||
if (row->mode_line_p && row->enabled_p)
|
||||
|
@ -32466,7 +32473,8 @@ note_mode_line_or_margin_highlight (Lisp_Object window, int x, int y,
|
|||
|
||||
/* Change the mouse pointer according to what is under X/Y. */
|
||||
if (NILP (pointer)
|
||||
&& (area == ON_MODE_LINE || area == ON_HEADER_LINE || area == ON_TAB_LINE))
|
||||
&& (area == ON_MODE_LINE || area == ON_HEADER_LINE
|
||||
|| area == ON_TAB_LINE))
|
||||
{
|
||||
Lisp_Object map;
|
||||
|
||||
|
@ -32492,7 +32500,8 @@ note_mode_line_or_margin_highlight (Lisp_Object window, int x, int y,
|
|||
{
|
||||
mouse_face = Fget_text_property (pos, Qmouse_face, string);
|
||||
if (!NILP (Vmouse_highlight) && !NILP (mouse_face)
|
||||
&& ((area == ON_MODE_LINE) || (area == ON_HEADER_LINE) || (area == ON_TAB_LINE))
|
||||
&& ((area == ON_MODE_LINE) || (area == ON_HEADER_LINE)
|
||||
|| (area == ON_TAB_LINE))
|
||||
&& glyph)
|
||||
{
|
||||
Lisp_Object b, e;
|
||||
|
@ -32564,10 +32573,10 @@ note_mode_line_or_margin_highlight (Lisp_Object window, int x, int y,
|
|||
vpos = (area == ON_MODE_LINE
|
||||
? (w->current_matrix)->nrows - 1
|
||||
: (area == ON_TAB_LINE
|
||||
? 0
|
||||
: (w->current_matrix->tab_line_p
|
||||
? 1
|
||||
: 0)));
|
||||
? 0
|
||||
: (w->current_matrix->tab_line_p
|
||||
? 1
|
||||
: 0)));
|
||||
|
||||
/* If GLYPH's position is included in the region that is
|
||||
already drawn in mouse face, we have nothing to do. */
|
||||
|
@ -32623,7 +32632,8 @@ note_mode_line_or_margin_highlight (Lisp_Object window, int x, int y,
|
|||
|
||||
/* If mouse-face doesn't need to be shown, clear any existing
|
||||
mouse-face. */
|
||||
if ((area == ON_MODE_LINE || area == ON_HEADER_LINE || area == ON_TAB_LINE) && !mouse_face_shown)
|
||||
if ((area == ON_MODE_LINE || area == ON_HEADER_LINE
|
||||
|| area == ON_TAB_LINE) && !mouse_face_shown)
|
||||
clear_mouse_face (hlinfo);
|
||||
|
||||
define_frame_cursor1 (f, cursor, pointer);
|
||||
|
@ -34372,10 +34382,6 @@ vertical margin. */);
|
|||
doc: /* Relief thickness of tab-bar buttons. */);
|
||||
tab_bar_button_relief = DEFAULT_TAB_BAR_BUTTON_RELIEF;
|
||||
|
||||
DEFVAR_INT ("tab-bar-max-label-size", tab_bar_max_label_size,
|
||||
doc: /* Maximum number of characters a label can have to be shown. */);
|
||||
tab_bar_max_label_size = DEFAULT_TAB_BAR_LABEL_SIZE;
|
||||
|
||||
DEFVAR_LISP ("tool-bar-border", Vtool_bar_border,
|
||||
doc: /* Border below tool-bar in pixels.
|
||||
If an integer, use it as the height of the border.
|
||||
|
|
|
@ -6585,8 +6585,8 @@ syms_of_xfaces (void)
|
|||
DEFSYM (Qtool_bar, "tool-bar");
|
||||
DEFSYM (Qtab_bar, "tab-bar");
|
||||
DEFSYM (Qfringe, "fringe");
|
||||
DEFSYM (Qheader_line, "header-line");
|
||||
DEFSYM (Qtab_line, "tab-line");
|
||||
DEFSYM (Qheader_line, "header-line");
|
||||
DEFSYM (Qscroll_bar, "scroll-bar");
|
||||
DEFSYM (Qmenu, "menu");
|
||||
DEFSYM (Qcursor, "cursor");
|
||||
|
|
|
@ -2820,7 +2820,6 @@ xic_set_statusarea (struct frame *f)
|
|||
area.x = FRAME_PIXEL_WIDTH (f) - area.width - FRAME_INTERNAL_BORDER_WIDTH (f);
|
||||
area.y = (FRAME_PIXEL_HEIGHT (f) - area.height
|
||||
- FRAME_MENUBAR_HEIGHT (f)
|
||||
- FRAME_TABBAR_TOP_HEIGHT (f)
|
||||
- FRAME_TOOLBAR_TOP_HEIGHT (f)
|
||||
- FRAME_INTERNAL_BORDER_WIDTH (f));
|
||||
XFree (needed);
|
||||
|
|
30
src/xterm.c
30
src/xterm.c
|
@ -3223,8 +3223,8 @@ x_draw_image_relief (struct glyph_string *s)
|
|||
thick = (tab_bar_button_relief < 0
|
||||
? DEFAULT_TAB_BAR_BUTTON_RELIEF
|
||||
: (tool_bar_button_relief < 0
|
||||
? DEFAULT_TOOL_BAR_BUTTON_RELIEF
|
||||
: min (tool_bar_button_relief, 1000000)));
|
||||
? DEFAULT_TOOL_BAR_BUTTON_RELIEF
|
||||
: min (tool_bar_button_relief, 1000000)));
|
||||
raised_p = s->hl == DRAW_IMAGE_RAISED;
|
||||
}
|
||||
else
|
||||
|
@ -10222,7 +10222,7 @@ x_new_font (struct frame *f, Lisp_Object font_object, int fontset)
|
|||
false, Qfont);
|
||||
#ifndef USE_X_TOOLKIT
|
||||
if ((FRAME_MENU_BAR_HEIGHT (f) != old_menu_bar_height
|
||||
|| FRAME_TAB_BAR_HEIGHT (f) != old_tab_bar_height)
|
||||
|| FRAME_TAB_BAR_HEIGHT (f) != old_tab_bar_height)
|
||||
&& !f->after_make_frame
|
||||
&& (EQ (frame_inhibit_implied_resize, Qt)
|
||||
|| (CONSP (frame_inhibit_implied_resize)
|
||||
|
@ -10232,7 +10232,8 @@ x_new_font (struct frame *f, Lisp_Object font_object, int fontset)
|
|||
/* If the menu/tab bar height changes, try to keep text height
|
||||
constant. */
|
||||
adjust_frame_size
|
||||
(f, -1, FRAME_TEXT_HEIGHT (f) + FRAME_MENU_BAR_HEIGHT (f) + FRAME_TAB_BAR_HEIGHT (f)
|
||||
(f, -1, FRAME_TEXT_HEIGHT (f) + FRAME_MENU_BAR_HEIGHT (f)
|
||||
+ FRAME_TAB_BAR_HEIGHT (f)
|
||||
- old_menu_bar_height - old_tab_bar_height, 1, false, Qfont);
|
||||
#endif /* USE_X_TOOLKIT */
|
||||
}
|
||||
|
@ -11168,7 +11169,7 @@ x_check_fullscreen (struct frame *f)
|
|||
case FULLSCREEN_WIDTH:
|
||||
lval = Qfullwidth;
|
||||
width = x_display_pixel_width (dpyinfo);
|
||||
height = height + FRAME_MENUBAR_HEIGHT (f) + FRAME_TABBAR_HEIGHT (f);
|
||||
height = height + FRAME_MENUBAR_HEIGHT (f);
|
||||
break;
|
||||
case FULLSCREEN_HEIGHT:
|
||||
lval = Qfullheight;
|
||||
|
@ -11190,7 +11191,7 @@ x_check_fullscreen (struct frame *f)
|
|||
x_wait_for_event (f, ConfigureNotify);
|
||||
else
|
||||
{
|
||||
change_frame_size (f, width, height - FRAME_MENUBAR_HEIGHT (f) - FRAME_TABBAR_HEIGHT (f),
|
||||
change_frame_size (f, width, height - FRAME_MENUBAR_HEIGHT (f),
|
||||
false, true, false, true);
|
||||
x_sync (f);
|
||||
}
|
||||
|
@ -11366,10 +11367,10 @@ x_set_window_size_1 (struct frame *f, bool change_gravity,
|
|||
{
|
||||
frame_size_history_add
|
||||
(f, Qx_set_window_size_1, width, height,
|
||||
list2i (old_height, pixelheight + FRAME_MENUBAR_HEIGHT (f) + FRAME_TABBAR_HEIGHT (f)));
|
||||
list2i (old_height, pixelheight + FRAME_MENUBAR_HEIGHT (f)));
|
||||
|
||||
XResizeWindow (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f),
|
||||
old_width, pixelheight + FRAME_MENUBAR_HEIGHT (f) + FRAME_TABBAR_HEIGHT (f));
|
||||
old_width, pixelheight + FRAME_MENUBAR_HEIGHT (f));
|
||||
}
|
||||
else if (EQ (fullscreen, Qfullheight) && height == FRAME_TEXT_HEIGHT (f))
|
||||
{
|
||||
|
@ -11385,12 +11386,13 @@ x_set_window_size_1 (struct frame *f, bool change_gravity,
|
|||
{
|
||||
frame_size_history_add
|
||||
(f, Qx_set_window_size_3, width, height,
|
||||
list3i (pixelwidth + FRAME_TOOLBAR_WIDTH (f) + FRAME_TABBAR_WIDTH (f),
|
||||
(pixelheight + FRAME_TOOLBAR_HEIGHT (f) + FRAME_TABBAR_HEIGHT (f) + FRAME_MENUBAR_HEIGHT (f)),
|
||||
FRAME_MENUBAR_HEIGHT (f) + FRAME_TABBAR_HEIGHT (f)));
|
||||
list3i (pixelwidth + FRAME_TOOLBAR_WIDTH (f),
|
||||
(pixelheight + FRAME_TOOLBAR_HEIGHT (f)
|
||||
+ FRAME_MENUBAR_HEIGHT (f)),
|
||||
FRAME_MENUBAR_HEIGHT (f)));
|
||||
|
||||
XResizeWindow (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f),
|
||||
pixelwidth, pixelheight + FRAME_MENUBAR_HEIGHT (f) + FRAME_TABBAR_HEIGHT (f));
|
||||
pixelwidth, pixelheight + FRAME_MENUBAR_HEIGHT (f));
|
||||
fullscreen = Qnil;
|
||||
}
|
||||
|
||||
|
@ -11467,7 +11469,7 @@ x_set_window_size (struct frame *f, bool change_gravity,
|
|||
#ifdef USE_X_TOOLKIT
|
||||
/* The menu bar is not part of text lines. The tool bar
|
||||
is however. */
|
||||
pixelh -= FRAME_MENUBAR_HEIGHT (f) + FRAME_TABBAR_HEIGHT (f);
|
||||
pixelh -= FRAME_MENUBAR_HEIGHT (f);
|
||||
#endif
|
||||
text_width = FRAME_PIXEL_TO_TEXT_WIDTH (f, FRAME_PIXEL_WIDTH (f));
|
||||
text_height = FRAME_PIXEL_TO_TEXT_HEIGHT (f, pixelh);
|
||||
|
@ -12263,7 +12265,7 @@ x_wm_set_size_hint (struct frame *f, long flags, bool user_position)
|
|||
|
||||
size_hints.flags |= PBaseSize;
|
||||
size_hints.base_width = base_width;
|
||||
size_hints.base_height = base_height + FRAME_MENUBAR_HEIGHT (f) + FRAME_TABBAR_HEIGHT (f);
|
||||
size_hints.base_height = base_height + FRAME_MENUBAR_HEIGHT (f);
|
||||
size_hints.min_width = base_width;
|
||||
size_hints.min_height = base_height;
|
||||
}
|
||||
|
|
24
src/xterm.h
24
src/xterm.h
|
@ -505,16 +505,6 @@ struct x_output
|
|||
int menubar_height;
|
||||
#endif
|
||||
|
||||
/* Height of tab bar widget, in pixels. top_height is used if tab bar
|
||||
at top, bottom_height if tab bar is at the bottom.
|
||||
Zero if not using an external tab bar or if tab bar is vertical. */
|
||||
int tabbar_top_height, tabbar_bottom_height;
|
||||
|
||||
/* Width of tab bar widget, in pixels. left_width is used if tab bar
|
||||
at left, right_width if tab bar is at the right.
|
||||
Zero if not using an external tab bar or if tab bar is horizontal. */
|
||||
int tabbar_left_width, tabbar_right_width;
|
||||
|
||||
/* Height of tool bar widget, in pixels. top_height is used if tool bar
|
||||
at top, bottom_height if tool bar is at the bottom.
|
||||
Zero if not using an external tool bar or if tool bar is vertical. */
|
||||
|
@ -582,11 +572,6 @@ struct x_output
|
|||
GtkWidget *hbox_widget;
|
||||
/* The menubar in this frame. */
|
||||
GtkWidget *menubar_widget;
|
||||
/* The tab bar in this frame */
|
||||
GtkWidget *tabbar_widget;
|
||||
/* True if tab bar is packed into the hbox widget (i.e. vertical). */
|
||||
bool_bf tabbar_in_hbox : 1;
|
||||
bool_bf tabbar_is_packed : 1;
|
||||
/* The tool bar in this frame */
|
||||
GtkWidget *toolbar_widget;
|
||||
/* True if tool bar is packed into the hbox widget (i.e. vertical). */
|
||||
|
@ -830,15 +815,6 @@ extern void x_mark_frame_dirty (struct frame *f);
|
|||
|
||||
#define FRAME_FONT(f) ((f)->output_data.x->font)
|
||||
#define FRAME_FONTSET(f) ((f)->output_data.x->fontset)
|
||||
#define FRAME_TABBAR_TOP_HEIGHT(f) ((f)->output_data.x->tabbar_top_height)
|
||||
#define FRAME_TABBAR_BOTTOM_HEIGHT(f) \
|
||||
((f)->output_data.x->tabbar_bottom_height)
|
||||
#define FRAME_TABBAR_HEIGHT(f) \
|
||||
(FRAME_TABBAR_TOP_HEIGHT (f) + FRAME_TABBAR_BOTTOM_HEIGHT (f))
|
||||
#define FRAME_TABBAR_LEFT_WIDTH(f) ((f)->output_data.x->tabbar_left_width)
|
||||
#define FRAME_TABBAR_RIGHT_WIDTH(f) ((f)->output_data.x->tabbar_right_width)
|
||||
#define FRAME_TABBAR_WIDTH(f) \
|
||||
(FRAME_TABBAR_LEFT_WIDTH (f) + FRAME_TABBAR_RIGHT_WIDTH (f))
|
||||
#define FRAME_TOOLBAR_TOP_HEIGHT(f) ((f)->output_data.x->toolbar_top_height)
|
||||
#define FRAME_TOOLBAR_BOTTOM_HEIGHT(f) \
|
||||
((f)->output_data.x->toolbar_bottom_height)
|
||||
|
|
Loading…
Add table
Reference in a new issue