From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Alexander Miller Newsgroups: gmane.emacs.bugs Subject: bug#45620: 28.0.50; Child frames should have their own border width and colour Date: Tue, 5 Jan 2021 13:50:51 +0100 Message-ID: <2c70983d-947c-c8ce-731c-ab804642ded2@web.de> References: <30630458-2ef4-7da9-ea28-cdb12052dba2@web.de> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------EF81FC4DEFDA1E52D80AABA6" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="18406"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 Cc: 45620@debbugs.gnu.org, tumashu@163.com To: rudalics@gmx.at Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Jan 05 13:46:21 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kwljA-0004fT-LL for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 05 Jan 2021 13:46:20 +0100 Original-Received: from localhost ([::1]:42470 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kwlj9-0005vO-LX for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 05 Jan 2021 07:46:19 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:55084) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kwlis-0005tu-HZ for bug-gnu-emacs@gnu.org; Tue, 05 Jan 2021 07:46:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:57740) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kwlis-0002Pf-AE for bug-gnu-emacs@gnu.org; Tue, 05 Jan 2021 07:46:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kwlis-0008DE-8N for bug-gnu-emacs@gnu.org; Tue, 05 Jan 2021 07:46:02 -0500 X-Loop: help-debbugs@gnu.org In-Reply-To: <30630458-2ef4-7da9-ea28-cdb12052dba2@web.de> Resent-From: Alexander Miller Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 05 Jan 2021 12:46:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 45620 X-GNU-PR-Package: emacs Original-Received: via spool by 45620-submit@debbugs.gnu.org id=B45620.160985071231491 (code B ref 45620); Tue, 05 Jan 2021 12:46:02 +0000 Original-Received: (at 45620) by debbugs.gnu.org; 5 Jan 2021 12:45:12 +0000 Original-Received: from localhost ([127.0.0.1]:41053 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kwli4-0008Bq-06 for submit@debbugs.gnu.org; Tue, 05 Jan 2021 07:45:12 -0500 Original-Received: from mout.web.de ([212.227.17.12]:53089) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kwli1-0008BF-Gv for 45620@debbugs.gnu.org; Tue, 05 Jan 2021 07:45:10 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1609850691; bh=jRDAVjMGIQ9jwuwI5WGnJ2HSeUw3ARp++cgPrtMbzvA=; h=X-UI-Sender-Class:To:Cc:Subject:From:Date; b=PCvRhX34kSjFTp/V+16hvsPEogtsbnoN1rjUVsjBWUmymcv1Ywntx0i9Ex5e9Qkvf h9jJrwELwgoVq/1glpMg/73dsPlOhvfN7+qgnmTvpLplEFZRwzNBeejc0bFmFQzbfv rmogxhuWeqiYlNHQkPuSBXd61AoGjnleg2deK2+E= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Original-Received: from [192.168.2.104] ([217.241.231.57]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1Ml4B4-1kG1yY3pSm-00lRIH; Tue, 05 Jan 2021 13:44:51 +0100 Content-Language: en-US X-Provags-ID: V03:K1:5vQxHGctm6PkbnbesGxtkLDUMBVDbzQxQHi7kRCMcn+BOhNXBeh UNeb3jw3MZIHfH9AT0Gpm9W62VAkcKaAkwqmUSrvLQIbqMLwud2Lk+sMb075Sp9DHhuvznf szu0596ZBIBPP30ZwvSC4oTnxz5oaz2kwTcyoMZXb+aNtlZgrP0VCVoa6pGvdFhjBJRP2mS gBnecg3ZXBfZWBus47q3A== X-UI-Out-Filterresults: notjunk:1;V03:K0:1Yu+H3lbRFg=:rqgOBf36nonoiEJFLbQn+5 y7SmMDXSoQ89CjAOAbL8LeHKAObJbRRhShJEjPfmQyYiN9K5NwWHoPaW8QQYnDuvEALofZni8 +6Wq8S2egO3/5HSudxlcVHdBEIIG1NbFgw0USemOKCJyWGHWA8lEYvYpcBw1o03tcDkOFKRAe 0PnKhcI0OSZkeBbR30bDBqKnkY9/BJDM9T8ZomXm786VoEwp02ioXmx/F1ogfMYqpYNByaNR0 xo6ulFDuFdNheuBD1WLl5GhnExOQpoeF84Zr0iVvq5O+yDXPlepHzIriYhlHP15gtxw+FCxXg 4LNq317rFU7iodGdxJOiHw04RCaen6qZ3Ww3XvVkT7X6eh2LGjDZr4AUlM50tne+yjCBKQH0j Vn8qkUWMOE4PsP/EGTRFZUXSI4okY6ZTTUsTpXnsmmA09q6Sg9fuUL8dwZztRD1OsM8/WriGP 2pJMhOHoC2hKyIO/oxbUukEuhZS5ZLiQSTDCDbn3NVCPQI4OoSn3NgrF5VcDBQRG9rsIL3tNt xkAlfhnP9lN1sXB8U3nBRvRS3vhVpIG7/QD0E9E28/DgItqwXTp52BD9kvcEdSh8qvV7eNwTl SIk6S9cqIetskqvc8NQ4CwowGJsS28ard7pFrNup3w/41TzAPtFMEvynKGxB+9gYn9suxmQyI z4fN0B0hkAaaiHn1hw129YM8pwyLTkTp+vmmjAKuCYn5axQ1ak0aOc36H3P0Nn0kJoezbzGdd GMcbgxR3LBSaOv/MkjgClrTrzGBO1iRUZpe/sQsMC707ot/0KCTlBR8CDOr+KxzmR4OTMzIf X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:197376 Archived-At: This is a multi-part message in MIME format. --------------EF81FC4DEFDA1E52D80AABA6 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable >>> Can you propose a patch? >> >> I can *try*. I am absolutely not a C programmer, but as long as the task >> is limited to a monkey see, monkey do situation for handling a new fac= e >> I should be able to hammer something useful together. > > That's one way to become a C programmer ... To be honest I've don't really like C as a language, and learning it would not do anything professionally for me either. So I'm jumping into this strictly for the sake of improving Emacs. >> and I would like to put it into a single function accessible from >> anywhere. Is that the right call, and if yes, where would be the right >> place to put it? > > This is the first time I see the internal border face getting remapped. > I wasn't aware that nsterm.c does that and I'm not sure whether we > should add something similar to xterm.c and w32term.c. In nsterm.c I > would not write an extra function but instead of what we have now use > > int face_id =3D > (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)); x, ns and w32 all used the same code, so I changed them all to look like this now. >> - Currently the actual width of the border is still controlled by the >> `internal-border-width` parameter for both frame types. Should I try t= o >> do something about that as well? If yes, what's my entry point? > > Add a 'child-frame-border-width' parameter. But in this case I would > propose to proceed as follows: > > - If for a frame the 'child-frame-border-width' was explicitly set, use > it. > > - If it was not set, use the 'internal-border-width' parameter. That's done now too, at least for X. I'll attach patches of my first working drafts for both changes. Let me know if I'm on the right path so far. >> - I think I'll need to sign the FSF copyright assignment, unless the >> limit is higher than the 15 lines I am remembering. > > I think so too. > Ok, what do I do? --------------EF81FC4DEFDA1E52D80AABA6 Content-Type: text/x-patch; charset=UTF-8; name="0001-WIP-child-frame-border.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0001-WIP-child-frame-border.patch" =46rom 50e3d31abf4bd12e24f82bb2f8e39ec1c3c073e0 Mon Sep 17 00:00:00 2001 From: Alexander Miller Date: Tue, 5 Jan 2021 11:33:31 +0100 Subject: [PATCH 1/2] WIP child-frame-border =2D-- lisp/faces.el | 11 ++++++++++- src/dispextern.h | 1 + src/nsterm.m | 10 +++++++--- src/w32fns.c | 10 +++++++--- src/xfaces.c | 3 +++ src/xterm.c | 20 ++++++++++++++------ 6 files changed, 42 insertions(+), 13 deletions(-) diff --git a/lisp/faces.el b/lisp/faces.el index 4e98338432..639dbeb09a 100644 =2D-- a/lisp/faces.el +++ b/lisp/faces.el @@ -2683,11 +2683,20 @@ window-divider-last-pixel (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 diff --git a/src/dispextern.h b/src/dispextern.h index 3ad98b8344..f4e872644d 100644 =2D-- a/src/dispextern.h +++ b/src/dispextern.h @@ -1826,6 +1826,7 @@ #define FACE_UNIBYTE_P(FACE) ((FACE)->charset < 0) 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 diff --git a/src/nsterm.m b/src/nsterm.m index 2defb9e2ee..76f67d2531 100644 =2D-- a/src/nsterm.m +++ b/src/nsterm.m @@ -3029,9 +3029,13 @@ so some key presses (TAB) are swallowed by the syst= em. */ NSRectEdge edge[] =3D {NSMinXEdge, NSMinYEdge, NSMaxXEdge, NSMaxYEd= ge}; int face_id =3D - !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 =3D FACE_FROM_ID_OR_NULL (f, face_id); if (!face) diff --git a/src/w32fns.c b/src/w32fns.c index c1e18ff7fa..061886f0bc 100644 =2D-- a/src/w32fns.c +++ b/src/w32fns.c @@ -1519,9 +1519,13 @@ w32_clear_under_internal_border (struct frame *f) int width =3D FRAME_PIXEL_WIDTH (f); int height =3D FRAME_PIXEL_HEIGHT (f); int face_id =3D - !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 =3D FACE_FROM_ID_OR_NULL (f, face_id); block_input (); diff --git a/src/xfaces.c b/src/xfaces.c index b3b19a9cb2..5080120957 100644 =2D-- a/src/xfaces.c +++ b/src/xfaces.c @@ -4913,6 +4913,7 @@ lookup_basic_face (struct window *w, struct frame *f= , int face_id) case WINDOW_DIVIDER_FIRST_PIXEL_FACE_ID: name =3D Qwindow_divider_fir= st_pixel; break; case WINDOW_DIVIDER_LAST_PIXEL_FACE_ID: name =3D Qwindow_divider_last= _pixel; break; case INTERNAL_BORDER_FACE_ID: name =3D Qinternal_border; break; + case CHILD_FRAME_BORDER_FACE_ID: name =3D Qchild_frame_border; break= ; default: emacs_abort (); /* the caller is supposed to pass us a basic face i= d */ @@ -5619,6 +5620,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); @@ -6967,6 +6969,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"); diff --git a/src/xterm.c b/src/xterm.c index 0a86738cc2..92dcd95043 100644 =2D-- a/src/xterm.c +++ b/src/xterm.c @@ -1293,9 +1293,13 @@ x_clear_under_internal_border (struct frame *f) int height =3D FRAME_PIXEL_HEIGHT (f); int margin =3D FRAME_TOP_MARGIN_HEIGHT (f); int face_id =3D - !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 =3D FACE_FROM_ID_OR_NULL (f, face_id); block_input (); @@ -1360,9 +1364,13 @@ x_after_update_window_line (struct window *w, struc= t glyph_row *desired_row) { int y =3D WINDOW_TO_FRAME_PIXEL_Y (w, max (0, desired_row->y)); int face_id =3D - !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 =3D FACE_FROM_ID_OR_NULL (f, face_id); block_input (); =2D- 2.29.2 --------------EF81FC4DEFDA1E52D80AABA6 Content-Type: text/x-patch; charset=UTF-8; name="0002-WIP-child-frame-border-width.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0002-WIP-child-frame-border-width.patch" =46rom b176909995eea600d99354be2127469f472ce4bb Mon Sep 17 00:00:00 2001 From: Alexander Miller Date: Tue, 5 Jan 2021 13:31:09 +0100 Subject: [PATCH 2/2] WIP child-frame-border-width =2D-- src/frame.c | 4 ++++ src/frame.h | 14 +++++++++++++- src/xfns.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 67 insertions(+), 5 deletions(-) diff --git a/src/frame.c b/src/frame.c index 45ee96e962..d5040dfae6 100644 =2D-- a/src/frame.c +++ b/src/frame.c @@ -3744,6 +3744,7 @@ DEFUN ("set-frame-window-state-change", Fset_frame_w= indow_state_change, {"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)}, @@ -4287,6 +4288,8 @@ gui_report_frame_params (struct frame *f, Lisp_Objec= t *alistptr) store_in_alist (alistptr, Qborder_width, make_fixnum (f->border_width)); + store_in_alist (alistptr, Qchild_frame_border_width, + make_fixnum (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, @@ -5984,6 +5987,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"); diff --git a/src/frame.h b/src/frame.h index 8cf41dc004..7d816f2516 100644 =2D-- a/src/frame.h +++ b/src/frame.h @@ -534,6 +534,10 @@ #define EMACS_FRAME_H /* Border width of the frame window as known by the (X) window system. = */ int border_width; + /* Width of child frames' internal border. Acts exactly like + internal_border_width below and will fall back on it when not set.*/ + 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,19 @@ FRAME_TOTAL_FRINGE_WIDTH (struct frame *f) return FRAME_LEFT_FRINGE_WIDTH (f) + FRAME_RIGHT_FRINGE_WIDTH (f); } +INLINE int +CHILD_FRAME_BORDER_WIDTH (struct frame *f) +{ + return frame_dimension (f->child_frame_border_width); +} + /* Pixel-width of internal border lines. */ INLINE int FRAME_INTERNAL_BORDER_WIDTH (struct frame *f) { - return frame_dimension (f->internal_border_width); + return f->child_frame_border_width + ? CHILD_FRAME_BORDER_WIDTH(f) + : frame_dimension (f->internal_border_width); } /* Pixel-size of window divider lines. */ diff --git a/src/xfns.c b/src/xfns.c index 9ab537ca8d..663146d7f2 100644 =2D-- a/src/xfns.c +++ b/src/xfns.c @@ -1800,6 +1800,28 @@ x_change_tool_bar_height (struct frame *f, int heig= ht) #endif /* USE_GTK */ } +static void +x_set_child_frame_border_width (struct frame *f, Lisp_Object arg, Lisp_Ob= ject oldval) +{ + int border =3D check_int_nonnegative (arg); + + if (border !=3D CHILD_FRAME_BORDER_WIDTH (f)) + { + f->child_frame_border_width =3D 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_Objec= t oldval) @@ -3897,14 +3919,37 @@ DEFUN ("x-create-frame", Fx_create_frame, Sx_creat= e_frame, parms =3D Fcons (Fcons (Qinternal_border_width, value), parms); } + /* Same for child frames. */ + if (NILP (Fassq (Qchild_frame_border_width, parms))) + { + Lisp_Object value; + + value =3D gui_display_get_arg (dpyinfo, parms, Qchild_frame_border_= width, + "internalBorder", "internalBorder", + RES_TYPE_NUMBER); + if (! EQ (value, Qunbound)) + parms =3D 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), + make_fixnum (0), #else - make_fixnum (1), + make_fixnum (1), #endif - "internalBorderWidth", "internalBorderWidth", - RES_TYPE_NUMBER); + "internalBorderWidth", "internalBorderWidth", + 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)= , @@ -7762,6 +7807,7 @@ DEFUN ("x-gtk-debug", Fx_gtk_debug, Sx_gtk_debug, 1,= 1, 0, 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, =2D- 2.29.2 --------------EF81FC4DEFDA1E52D80AABA6--