Add distinct controls for child frames' borders (Bug#45620)
The background of the 'child-frame-border' face instead of the 'internal-border' face now controls the color of child frames' borders. The 'child-frame-border-width' frame parameter is now used for the width of child frames' borders instead of internal-border-width', though we still fall back on using the latter if the former is not set. * doc/lispref/frames.texi (Frame Layout): Mention 'child-frame-border' and 'child-frame-border-width'. (Layout Parameters): Mention 'child-frame-border-width'. * etc/NEWS: Mention new face 'child-frame-border' and frame parameter 'child-frame-border-width'. * lisp/faces.el (child-frame-border): New face. * src/dispextern.h (enum face_id): Add CHILD_FRAME_BORDER_FACE_ID. * src/frame.c (Fframe_child_frame_border_width): New function. (gui_report_frame_params): Add entry for Qchild_frame_border_width. * src/frame.h (struct frame): New slot child_frame_border_width. (FRAME_CHILD_FRAME_BORDER_WIDTH): New inlined function. * src/nsfns.m (ns_set_child_frame_border_width): New function. (Fx_create_frame): Handle Qchild_frame_border_width parameter. (ns_frame_parm_handlers): Add ns_set_child_frame_border_width. * src/nsterm.m (ns_clear_under_internal_border): Handle CHILD_FRAME_BORDER_FACE_ID. * src/w32fns.c (w32_clear_under_internal_border): Handle CHILD_FRAME_BORDER_FACE_ID. (w32_set_internal_border_width): New function. (Fx_create_frame): Handle Qchild_frame_border_width parameter. (w32_frame_parm_handlers): Add w32_set_child_frame_border_width. * src/xfaces.c (lookup_basic_face, realize_basic_faces): Handle CHILD_FRAME_BORDER_FACE_ID. * src/xfns.c (x_set_child_frame_border_width): New function. (Fx_create_frame): Handle Qchild_frame_border_width parameter. (x_frame_parm_handlers): Add x_set_child_frame_border_width. * src/xterm.c (x_clear_under_internal_border) (x_after_update_window_line): Handle CHILD_FRAME_BORDER_FACE_ID.
This commit is contained in:
parent
b4b6a26840
commit
ff7b1a133b
12 changed files with 214 additions and 18 deletions
|
@ -694,9 +694,17 @@ parameter (@pxref{Management Parameters}).
|
|||
|
||||
@item Internal Border
|
||||
The internal border is a border drawn by Emacs around the inner frame
|
||||
(see below). Its width is specified by the @code{internal-border-width}
|
||||
frame parameter (@pxref{Layout Parameters}). Its color is specified by
|
||||
the background of the @code{internal-border} face.
|
||||
(see below). The specification of its appearance depends on whether
|
||||
the given frame is a child frame (@pxref{Child Frames}) or not.
|
||||
|
||||
For normal frames its width is specified by the @code{internal-border-width}
|
||||
frame parameter (@pxref{Layout Parameters}) and its color is specified by the
|
||||
background of the @code{internal-border} face.
|
||||
|
||||
For child frames its width is specified by the @code{child-frame-border-width}
|
||||
frame parameter (but will use the the @code{internal-border-width} parameter as
|
||||
a fallback) and its color is specified by the background of the
|
||||
@code{child-frame-border} face.
|
||||
|
||||
@item Inner Frame
|
||||
@cindex inner frame
|
||||
|
@ -1790,6 +1798,11 @@ The width in pixels of the frame's outer border (@pxref{Frame Geometry}).
|
|||
The width in pixels of the frame's internal border (@pxref{Frame
|
||||
Geometry}).
|
||||
|
||||
@vindex child-frame-border-width@r{, a frame parameter}
|
||||
@item child-frame-border-width
|
||||
The width in pixels of the frame's internal border (@pxref{Frame
|
||||
Geometry}) if the given frame is a child frame (@pxref{Child Frames}).
|
||||
|
||||
@vindex vertical-scroll-bars@r{, a frame parameter}
|
||||
@item vertical-scroll-bars
|
||||
Whether the frame has scroll bars (@pxref{Scroll Bars}) for vertical
|
||||
|
|
8
etc/NEWS
8
etc/NEWS
|
@ -2018,6 +2018,14 @@ hooks 'kill-buffer-hook', 'kill-buffer-query-functions', and
|
|||
'buffer-list-update-hook' for the temporary buffers they create. This
|
||||
avoids slowing them down when a lot of these hooks are defined.
|
||||
|
||||
** New face 'child-frame-border' and frame parameter 'child-frame-border-width'.
|
||||
The face and width of child frames borders can no be determined
|
||||
separately from thos of normal frames. To minimize backwards
|
||||
incompatibility, child frames without a 'child-frame-border-width'
|
||||
parameter will fall back to using 'internal-border-width'. However the
|
||||
new 'child-frame-border' face does constitute a breaking change since
|
||||
child frames' borders no longer use the 'internal-border' face.
|
||||
|
||||
---
|
||||
** The obsolete function 'thread-alive-p' has been removed.
|
||||
|
||||
|
|
|
@ -2683,11 +2683,20 @@ the same as `window-divider' face."
|
|||
|
||||
(defface internal-border
|
||||
'((t nil))
|
||||
"Basic face for the internal border."
|
||||
"Basic face for the internal border.
|
||||
For the internal border of child frames see `child-frame-border'."
|
||||
:version "26.1"
|
||||
:group 'frames
|
||||
:group 'basic-faces)
|
||||
|
||||
(defface child-frame-border
|
||||
'((t nil))
|
||||
"Basic face for the internal border of child frames.
|
||||
For the internal border of non-child frames see `internal-border'."
|
||||
:version "28.1"
|
||||
:group 'frames
|
||||
:group 'basic-faces)
|
||||
|
||||
(defface minibuffer-prompt
|
||||
'((((background dark)) :foreground "cyan")
|
||||
;; Don't use blue because many users of the MS-DOS port customize
|
||||
|
|
|
@ -1826,6 +1826,7 @@ enum face_id
|
|||
WINDOW_DIVIDER_FIRST_PIXEL_FACE_ID,
|
||||
WINDOW_DIVIDER_LAST_PIXEL_FACE_ID,
|
||||
INTERNAL_BORDER_FACE_ID,
|
||||
CHILD_FRAME_BORDER_FACE_ID,
|
||||
TAB_BAR_FACE_ID,
|
||||
TAB_LINE_FACE_ID,
|
||||
BASIC_FACE_ID_SENTINEL
|
||||
|
|
12
src/frame.c
12
src/frame.c
|
@ -3543,6 +3543,13 @@ DEFUN ("frame-fringe-width", Ffringe_width, Sfringe_width, 0, 1, 0,
|
|||
return make_fixnum (FRAME_TOTAL_FRINGE_WIDTH (decode_any_frame (frame)));
|
||||
}
|
||||
|
||||
DEFUN ("frame-child-frame-border-width", Fframe_child_frame_border_width, Sframe_child_frame_border_width, 0, 1, 0,
|
||||
doc: /* Return width of FRAME's child-frame border in pixels. */)
|
||||
(Lisp_Object frame)
|
||||
{
|
||||
return make_fixnum (FRAME_CHILD_FRAME_BORDER_WIDTH (decode_any_frame (frame)));
|
||||
}
|
||||
|
||||
DEFUN ("frame-internal-border-width", Fframe_internal_border_width, Sframe_internal_border_width, 0, 1, 0,
|
||||
doc: /* Return width of FRAME's internal border in pixels. */)
|
||||
(Lisp_Object frame)
|
||||
|
@ -3759,6 +3766,7 @@ static const struct frame_parm_table frame_parms[] =
|
|||
{"foreground-color", -1},
|
||||
{"icon-name", SYMBOL_INDEX (Qicon_name)},
|
||||
{"icon-type", SYMBOL_INDEX (Qicon_type)},
|
||||
{"child-frame-border-width", SYMBOL_INDEX (Qchild_frame_border_width)},
|
||||
{"internal-border-width", SYMBOL_INDEX (Qinternal_border_width)},
|
||||
{"right-divider-width", SYMBOL_INDEX (Qright_divider_width)},
|
||||
{"bottom-divider-width", SYMBOL_INDEX (Qbottom_divider_width)},
|
||||
|
@ -4302,6 +4310,8 @@ gui_report_frame_params (struct frame *f, Lisp_Object *alistptr)
|
|||
|
||||
store_in_alist (alistptr, Qborder_width,
|
||||
make_fixnum (f->border_width));
|
||||
store_in_alist (alistptr, Qchild_frame_border_width,
|
||||
make_fixnum (FRAME_CHILD_FRAME_BORDER_WIDTH (f)));
|
||||
store_in_alist (alistptr, Qinternal_border_width,
|
||||
make_fixnum (FRAME_INTERNAL_BORDER_WIDTH (f)));
|
||||
store_in_alist (alistptr, Qright_divider_width,
|
||||
|
@ -5999,6 +6009,7 @@ syms_of_frame (void)
|
|||
DEFSYM (Qhorizontal_scroll_bars, "horizontal-scroll-bars");
|
||||
DEFSYM (Qicon_name, "icon-name");
|
||||
DEFSYM (Qicon_type, "icon-type");
|
||||
DEFSYM (Qchild_frame_border_width, "child-frame-border-width");
|
||||
DEFSYM (Qinternal_border_width, "internal-border-width");
|
||||
DEFSYM (Qleft_fringe, "left-fringe");
|
||||
DEFSYM (Qline_spacing, "line-spacing");
|
||||
|
@ -6423,6 +6434,7 @@ iconify the top level frame instead. */);
|
|||
defsubr (&Sscroll_bar_width);
|
||||
defsubr (&Sscroll_bar_height);
|
||||
defsubr (&Sfringe_width);
|
||||
defsubr (&Sframe_child_frame_border_width);
|
||||
defsubr (&Sframe_internal_border_width);
|
||||
defsubr (&Sright_divider_width);
|
||||
defsubr (&Sbottom_divider_width);
|
||||
|
|
24
src/frame.h
24
src/frame.h
|
@ -534,6 +534,10 @@ struct frame
|
|||
/* Border width of the frame window as known by the (X) window system. */
|
||||
int border_width;
|
||||
|
||||
/* Width of child frames' internal border. Acts as
|
||||
internal_border_width for child frames. */
|
||||
int child_frame_border_width;
|
||||
|
||||
/* Width of the internal border. This is a line of background color
|
||||
just inside the window's border. When the frame is selected,
|
||||
a highlighting is displayed inside the internal border. */
|
||||
|
@ -1432,11 +1436,27 @@ FRAME_TOTAL_FRINGE_WIDTH (struct frame *f)
|
|||
return FRAME_LEFT_FRINGE_WIDTH (f) + FRAME_RIGHT_FRINGE_WIDTH (f);
|
||||
}
|
||||
|
||||
/* Pixel-width of internal border lines. */
|
||||
INLINE int
|
||||
FRAME_CHILD_FRAME_BORDER_WIDTH (struct frame *f)
|
||||
{
|
||||
return frame_dimension (f->child_frame_border_width);
|
||||
}
|
||||
|
||||
/* Pixel-width of internal border. Uses child_frame_border_width for
|
||||
child frames if possible and falls back on internal_border_width
|
||||
otherwise. */
|
||||
INLINE int
|
||||
FRAME_INTERNAL_BORDER_WIDTH (struct frame *f)
|
||||
{
|
||||
return frame_dimension (f->internal_border_width);
|
||||
#ifdef HAVE_WINDOW_SYSTEM
|
||||
return FRAME_PARENT_FRAME(f)
|
||||
? (f->child_frame_border_width
|
||||
? FRAME_CHILD_FRAME_BORDER_WIDTH(f)
|
||||
: frame_dimension (f->internal_border_width))
|
||||
: frame_dimension (f->internal_border_width);
|
||||
#else
|
||||
return frame_dimension (f->internal_border_width)
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Pixel-size of window divider lines. */
|
||||
|
|
19
src/nsfns.m
19
src/nsfns.m
|
@ -687,6 +687,21 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side.
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
ns_set_child_frame_border_width (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
|
||||
{
|
||||
int old_width = FRAME_CHILD_FRAME_BORDER_WIDTH (f);
|
||||
int new_width = check_int_nonnegative (arg);
|
||||
|
||||
if (new_width == old_width)
|
||||
return;
|
||||
f->child_frame_border_width = new_width;
|
||||
|
||||
if (FRAME_NATIVE_WINDOW (f) != 0)
|
||||
adjust_frame_size (f, -1, -1, 3, 0, Qchild_frame_border_width);
|
||||
|
||||
SET_FRAME_GARBAGED (f);
|
||||
}
|
||||
|
||||
static void
|
||||
ns_set_internal_border_width (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
|
||||
|
@ -912,6 +927,7 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side.
|
|||
ns_set_foreground_color,
|
||||
ns_set_icon_name,
|
||||
ns_set_icon_type,
|
||||
ns_set_child_frame_border_width,
|
||||
ns_set_internal_border_width,
|
||||
gui_set_right_divider_width, /* generic OK */
|
||||
gui_set_bottom_divider_width, /* generic OK */
|
||||
|
@ -1197,6 +1213,9 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side.
|
|||
gui_default_parameter (f, parms, Qinternal_border_width, make_fixnum (2),
|
||||
"internalBorderWidth", "InternalBorderWidth",
|
||||
RES_TYPE_NUMBER);
|
||||
gui_default_parameter (f, parms, Qchild_frame_border_width, make_fixnum (2),
|
||||
"childFrameBorderWidth", "childFrameBorderWidth",
|
||||
RES_TYPE_NUMBER);
|
||||
gui_default_parameter (f, parms, Qright_divider_width, make_fixnum (0),
|
||||
NULL, NULL, RES_TYPE_NUMBER);
|
||||
gui_default_parameter (f, parms, Qbottom_divider_width, make_fixnum (0),
|
||||
|
|
10
src/nsterm.m
10
src/nsterm.m
|
@ -3037,9 +3037,13 @@ so some key presses (TAB) are swallowed by the system. */
|
|||
NSRectEdge edge[] = {NSMinXEdge, NSMinYEdge, NSMaxXEdge, NSMaxYEdge};
|
||||
|
||||
int face_id =
|
||||
!NILP (Vface_remapping_alist)
|
||||
? lookup_basic_face (NULL, f, INTERNAL_BORDER_FACE_ID)
|
||||
: INTERNAL_BORDER_FACE_ID;
|
||||
(FRAME_PARENT_FRAME (f)
|
||||
? (!NILP (Vface_remapping_alist)
|
||||
? lookup_basic_face (NULL, f, CHILD_FRAME_BORDER_FACE_ID)
|
||||
: CHILD_FRAME_BORDER_FACE_ID)
|
||||
: (!NILP (Vface_remapping_alist)
|
||||
? lookup_basic_face (NULL, f, INTERNAL_BORDER_FACE_ID)
|
||||
: INTERNAL_BORDER_FACE_ID));
|
||||
struct face *face = FACE_FROM_ID_OR_NULL (f, face_id);
|
||||
|
||||
if (!face)
|
||||
|
|
59
src/w32fns.c
59
src/w32fns.c
|
@ -1519,9 +1519,13 @@ w32_clear_under_internal_border (struct frame *f)
|
|||
int width = FRAME_PIXEL_WIDTH (f);
|
||||
int height = FRAME_PIXEL_HEIGHT (f);
|
||||
int face_id =
|
||||
!NILP (Vface_remapping_alist)
|
||||
? lookup_basic_face (NULL, f, INTERNAL_BORDER_FACE_ID)
|
||||
: INTERNAL_BORDER_FACE_ID;
|
||||
(FRAME_PARENT_FRAME (f)
|
||||
? (!NILP (Vface_remapping_alist)
|
||||
? lookup_basic_face (NULL, f, CHILD_FRAME_BORDER_FACE_ID)
|
||||
: CHILD_FRAME_BORDER_FACE_ID)
|
||||
: (!NILP (Vface_remapping_alist)
|
||||
? lookup_basic_face (NULL, f, INTERNAL_BORDER_FACE_ID)
|
||||
: INTERNAL_BORDER_FACE_ID));
|
||||
struct face *face = FACE_FROM_ID_OR_NULL (f, face_id);
|
||||
|
||||
block_input ();
|
||||
|
@ -1548,6 +1552,32 @@ w32_clear_under_internal_border (struct frame *f)
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* w32_set_child_frame_border_width:
|
||||
*
|
||||
* Set width of child frame F's internal border to ARG pixels.
|
||||
* ARG < 0 is * treated like ARG = 0.
|
||||
*/
|
||||
static void
|
||||
w32_set_child_frame_border_width (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
|
||||
{
|
||||
int argval = check_integer_range (arg, INT_MIN, INT_MAX);
|
||||
int border = max (argval, 0);
|
||||
|
||||
if (border != FRAME_CHILD_FRAME_BORDER_WIDTH (f))
|
||||
{
|
||||
f->child_frame_border_width = border;
|
||||
|
||||
if (FRAME_NATIVE_WINDOW (f) != 0)
|
||||
{
|
||||
adjust_frame_size (f, -1, -1, 3, false, Qchild_frame_border_width);
|
||||
|
||||
if (FRAME_VISIBLE_P (f))
|
||||
w32_clear_under_internal_border (f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* w32_set_internal_border_width:
|
||||
|
@ -5873,6 +5903,28 @@ DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame,
|
|||
parameters);
|
||||
}
|
||||
|
||||
/* Same for child frames. */
|
||||
if (NILP (Fassq (Qchild_frame_border_width, parameters)))
|
||||
{
|
||||
Lisp_Object value;
|
||||
|
||||
value = gui_display_get_arg (dpyinfo, parameters, Qchild_frame_border_width,
|
||||
"childFrameBorderWidth", "childFrameBorderWidth",
|
||||
RES_TYPE_NUMBER);
|
||||
if (! EQ (value, Qunbound))
|
||||
parameters = Fcons (Fcons (Qchild_frame_border_width, value),
|
||||
parameters);
|
||||
|
||||
}
|
||||
|
||||
gui_default_parameter (f, parameters, Qchild_frame_border_width,
|
||||
#ifdef USE_GTK /* We used to impose 0 in xg_create_frame_widgets. */
|
||||
make_fixnum (0),
|
||||
#else
|
||||
make_fixnum (1),
|
||||
#endif
|
||||
"childFrameBorderWidth", "childFrameBorderWidth",
|
||||
RES_TYPE_NUMBER);
|
||||
gui_default_parameter (f, parameters, Qinternal_border_width, make_fixnum (0),
|
||||
"internalBorderWidth", "InternalBorder", RES_TYPE_NUMBER);
|
||||
gui_default_parameter (f, parameters, Qright_divider_width, make_fixnum (0),
|
||||
|
@ -10232,6 +10284,7 @@ frame_parm_handler w32_frame_parm_handlers[] =
|
|||
w32_set_foreground_color,
|
||||
w32_set_icon_name,
|
||||
w32_set_icon_type,
|
||||
w32_set_child_frame_border_width,
|
||||
w32_set_internal_border_width,
|
||||
gui_set_right_divider_width,
|
||||
gui_set_bottom_divider_width,
|
||||
|
|
|
@ -4914,6 +4914,7 @@ lookup_basic_face (struct window *w, struct frame *f, int face_id)
|
|||
case WINDOW_DIVIDER_FIRST_PIXEL_FACE_ID: name = Qwindow_divider_first_pixel; break;
|
||||
case WINDOW_DIVIDER_LAST_PIXEL_FACE_ID: name = Qwindow_divider_last_pixel; break;
|
||||
case INTERNAL_BORDER_FACE_ID: name = Qinternal_border; break;
|
||||
case CHILD_FRAME_BORDER_FACE_ID: name = Qchild_frame_border; break;
|
||||
|
||||
default:
|
||||
emacs_abort (); /* the caller is supposed to pass us a basic face id */
|
||||
|
@ -5620,6 +5621,7 @@ realize_basic_faces (struct frame *f)
|
|||
realize_named_face (f, Qwindow_divider_last_pixel,
|
||||
WINDOW_DIVIDER_LAST_PIXEL_FACE_ID);
|
||||
realize_named_face (f, Qinternal_border, INTERNAL_BORDER_FACE_ID);
|
||||
realize_named_face (f, Qchild_frame_border, CHILD_FRAME_BORDER_FACE_ID);
|
||||
realize_named_face (f, Qtab_bar, TAB_BAR_FACE_ID);
|
||||
realize_named_face (f, Qtab_line, TAB_LINE_FACE_ID);
|
||||
|
||||
|
@ -6973,6 +6975,7 @@ syms_of_xfaces (void)
|
|||
DEFSYM (Qwindow_divider_first_pixel, "window-divider-first-pixel");
|
||||
DEFSYM (Qwindow_divider_last_pixel, "window-divider-last-pixel");
|
||||
DEFSYM (Qinternal_border, "internal-border");
|
||||
DEFSYM (Qchild_frame_border, "child-frame-border");
|
||||
|
||||
/* TTY color-related functions (defined in tty-colors.el). */
|
||||
DEFSYM (Qtty_color_desc, "tty-color-desc");
|
||||
|
|
46
src/xfns.c
46
src/xfns.c
|
@ -1800,6 +1800,28 @@ x_change_tool_bar_height (struct frame *f, int height)
|
|||
#endif /* USE_GTK */
|
||||
}
|
||||
|
||||
static void
|
||||
x_set_child_frame_border_width (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
|
||||
{
|
||||
int border = check_int_nonnegative (arg);
|
||||
|
||||
if (border != FRAME_CHILD_FRAME_BORDER_WIDTH (f))
|
||||
{
|
||||
f->child_frame_border_width = border;
|
||||
|
||||
#ifdef USE_X_TOOLKIT
|
||||
if (FRAME_X_OUTPUT (f)->edit_widget)
|
||||
widget_store_internal_border (FRAME_X_OUTPUT (f)->edit_widget);
|
||||
#endif
|
||||
|
||||
if (FRAME_X_WINDOW (f))
|
||||
{
|
||||
adjust_frame_size (f, -1, -1, 3, false, Qchild_frame_border_width);
|
||||
x_clear_under_internal_border (f);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
x_set_internal_border_width (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
|
||||
|
@ -3897,6 +3919,29 @@ This function is an internal primitive--use `make-frame' instead. */)
|
|||
parms = Fcons (Fcons (Qinternal_border_width, value),
|
||||
parms);
|
||||
}
|
||||
|
||||
/* Same for child frames. */
|
||||
if (NILP (Fassq (Qchild_frame_border_width, parms)))
|
||||
{
|
||||
Lisp_Object value;
|
||||
|
||||
value = gui_display_get_arg (dpyinfo, parms, Qchild_frame_border_width,
|
||||
"childFrameBorderWidth", "childFrameBorderWidth",
|
||||
RES_TYPE_NUMBER);
|
||||
if (! EQ (value, Qunbound))
|
||||
parms = Fcons (Fcons (Qchild_frame_border_width, value),
|
||||
parms);
|
||||
|
||||
}
|
||||
|
||||
gui_default_parameter (f, parms, Qchild_frame_border_width,
|
||||
#ifdef USE_GTK /* We used to impose 0 in xg_create_frame_widgets. */
|
||||
make_fixnum (0),
|
||||
#else
|
||||
make_fixnum (1),
|
||||
#endif
|
||||
"childFrameBorderWidth", "childFrameBorderWidth",
|
||||
RES_TYPE_NUMBER);
|
||||
gui_default_parameter (f, parms, Qinternal_border_width,
|
||||
#ifdef USE_GTK /* We used to impose 0 in xg_create_frame_widgets. */
|
||||
make_fixnum (0),
|
||||
|
@ -7762,6 +7807,7 @@ frame_parm_handler x_frame_parm_handlers[] =
|
|||
x_set_foreground_color,
|
||||
x_set_icon_name,
|
||||
x_set_icon_type,
|
||||
x_set_child_frame_border_width,
|
||||
x_set_internal_border_width,
|
||||
gui_set_right_divider_width,
|
||||
gui_set_bottom_divider_width,
|
||||
|
|
20
src/xterm.c
20
src/xterm.c
|
@ -1293,9 +1293,13 @@ x_clear_under_internal_border (struct frame *f)
|
|||
int height = FRAME_PIXEL_HEIGHT (f);
|
||||
int margin = FRAME_TOP_MARGIN_HEIGHT (f);
|
||||
int face_id =
|
||||
!NILP (Vface_remapping_alist)
|
||||
? lookup_basic_face (NULL, f, INTERNAL_BORDER_FACE_ID)
|
||||
: INTERNAL_BORDER_FACE_ID;
|
||||
(FRAME_PARENT_FRAME (f)
|
||||
? (!NILP (Vface_remapping_alist)
|
||||
? lookup_basic_face (NULL, f, CHILD_FRAME_BORDER_FACE_ID)
|
||||
: CHILD_FRAME_BORDER_FACE_ID)
|
||||
: (!NILP (Vface_remapping_alist)
|
||||
? lookup_basic_face (NULL, f, INTERNAL_BORDER_FACE_ID)
|
||||
: INTERNAL_BORDER_FACE_ID));
|
||||
struct face *face = FACE_FROM_ID_OR_NULL (f, face_id);
|
||||
|
||||
block_input ();
|
||||
|
@ -1360,9 +1364,13 @@ x_after_update_window_line (struct window *w, struct glyph_row *desired_row)
|
|||
{
|
||||
int y = WINDOW_TO_FRAME_PIXEL_Y (w, max (0, desired_row->y));
|
||||
int face_id =
|
||||
!NILP (Vface_remapping_alist)
|
||||
? lookup_basic_face (NULL, f, INTERNAL_BORDER_FACE_ID)
|
||||
: INTERNAL_BORDER_FACE_ID;
|
||||
(FRAME_PARENT_FRAME (f)
|
||||
? (!NILP (Vface_remapping_alist)
|
||||
? lookup_basic_face (NULL, f, CHILD_FRAME_BORDER_FACE_ID)
|
||||
: CHILD_FRAME_BORDER_FACE_ID)
|
||||
: (!NILP (Vface_remapping_alist)
|
||||
? lookup_basic_face (NULL, f, INTERNAL_BORDER_FACE_ID)
|
||||
: INTERNAL_BORDER_FACE_ID));
|
||||
struct face *face = FACE_FROM_ID_OR_NULL (f, face_id);
|
||||
|
||||
block_input ();
|
||||
|
|
Loading…
Add table
Reference in a new issue