@@ -12,26 +12,26 @@ Subject: [PATCH] provide a way to make undecorated frame with round corners (fix
1212 5 files changed, 68 insertions(+), 1 deletion(-)
1313
1414diff --git a/src/frame.c b/src/frame.c
15- index 36b314c075e..32e00e36546 100644
15+ index 550fd336ff9..fd670cfa288 100644
1616--- a/src/frame.c
1717+++ b/src/frame.c
18- @@ -1008 ,6 +1008 ,7 @@ make_frame (bool mini_p)
18+ @@ -1072 ,6 +1072 ,7 @@ make_frame (bool mini_p)
1919 f->horizontal_scroll_bars = false;
2020 f->want_fullscreen = FULLSCREEN_NONE;
2121 f->undecorated = false;
2222+ f->undecorated_round = false;
2323 #ifndef HAVE_NTGUI
2424 f->override_redirect = false;
2525 #endif
26- @@ -4304 ,6 +4305 ,7 @@ DEFUN ("frame-scale-factor", Fframe_scale_factor, Sframe_scale_factor,
26+ @@ -4497 ,6 +4498 ,7 @@ static const struct frame_parm_table frame_parms[] =
2727 {"tool-bar-position", SYMBOL_INDEX (Qtool_bar_position)},
2828 {"inhibit-double-buffering", SYMBOL_INDEX (Qinhibit_double_buffering)},
2929 {"undecorated", SYMBOL_INDEX (Qundecorated)},
3030+ {"undecorated-round", SYMBOL_INDEX (Qundecorated_round)},
3131 {"parent-frame", SYMBOL_INDEX (Qparent_frame)},
3232 {"skip-taskbar", SYMBOL_INDEX (Qskip_taskbar)},
3333 {"no-focus-on-map", SYMBOL_INDEX (Qno_focus_on_map)},
34- @@ -6579 ,6 +6581 ,7 @@ syms_of_frame (void)
34+ @@ -6801 ,6 +6803 ,7 @@ syms_of_frame (void)
3535 DEFSYM (Qicon, "icon");
3636 DEFSYM (Qminibuffer, "minibuffer");
3737 DEFSYM (Qundecorated, "undecorated");
@@ -40,10 +40,10 @@ index 36b314c075e..32e00e36546 100644
4040 DEFSYM (Qparent_frame, "parent-frame");
4141 DEFSYM (Qskip_taskbar, "skip-taskbar");
4242diff --git a/src/frame.h b/src/frame.h
43- index 9ed2f66be22..7d776f01d28 100644
43+ index 62b2edcb315..3203528ebfc 100644
4444--- a/src/frame.h
4545+++ b/src/frame.h
46- @@ -445,6 +445,9 @@ #define EMACS_FRAME_H
46+ @@ -445,6 +445,9 @@ struct frame
4747 /* True if this is an undecorated frame. */
4848 bool_bf undecorated : 1;
4949
@@ -53,7 +53,7 @@ index 9ed2f66be22..7d776f01d28 100644
5353 /* Nonzero if this frame's window does not want to receive input focus
5454 via mouse clicks or by moving the mouse into it. */
5555 bool_bf no_accept_focus : 1;
56- @@ -1237 ,6 +1240 ,7 @@ FRAME_PARENT_FRAME (struct frame *f)
56+ @@ -1223 ,6 +1226 ,7 @@ FRAME_PARENT_FRAME (struct frame *f)
5757 }
5858
5959 #define FRAME_UNDECORATED(f) ((f)->undecorated)
@@ -62,18 +62,18 @@ index 9ed2f66be22..7d776f01d28 100644
6262 #if defined (HAVE_WINDOW_SYSTEM)
6363 #ifdef HAVE_NTGUI
6464diff --git a/src/nsfns.m b/src/nsfns.m
65- index 1055a4b37df..03b23e8a2fe 100644
65+ index b1ed0eff58a..11a4a215c8d 100644
6666--- a/src/nsfns.m
6767+++ b/src/nsfns.m
68- @@ -1102 ,6 +1102 ,7 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side.
68+ @@ -1098 ,6 +1098 ,7 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side.
6969 ns_set_tool_bar_position,
7070 ns_set_inhibit_double_buffering,
7171 ns_set_undecorated,
7272+ ns_set_undecorated_round,
7373 ns_set_parent_frame,
7474 0, /* x_set_skip_taskbar */
7575 ns_set_no_focus_on_map,
76- @@ -1405 ,6 +1406 ,11 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side.
76+ @@ -1401 ,6 +1402 ,11 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side.
7777 FRAME_UNDECORATED (f) = !NILP (tem) && !EQ (tem, Qunbound);
7878 store_frame_param (f, Qundecorated, FRAME_UNDECORATED (f) ? Qt : Qnil);
7979
@@ -86,10 +86,10 @@ index 1055a4b37df..03b23e8a2fe 100644
8686 tem = gui_display_get_arg (dpyinfo, parms, Qns_appearance, NULL, NULL,
8787 RES_TYPE_SYMBOL);
8888diff --git a/src/nsterm.h b/src/nsterm.h
89- index 6c67653705e..f308b3443d9 100644
89+ index 2abf402f8bc..77a900d959f 100644
9090--- a/src/nsterm.h
9191+++ b/src/nsterm.h
92- @@ -1226 ,6 +1226 ,8 @@ #define NSAPP_DATA2_RUNFILEDIALOG 11
92+ @@ -1227 ,6 +1227 ,8 @@ extern void ns_make_frame_invisible (struct frame *f);
9393 extern void ns_iconify_frame (struct frame *f);
9494 extern void ns_set_undecorated (struct frame *f, Lisp_Object new_value,
9595 Lisp_Object old_value);
@@ -99,7 +99,7 @@ index 6c67653705e..f308b3443d9 100644
9999 Lisp_Object old_value);
100100 extern void ns_set_no_focus_on_map (struct frame *f, Lisp_Object new_value,
101101diff --git a/src/nsterm.m b/src/nsterm.m
102- index c705a3c78f4..707f16d8de5 100644
102+ index 89664ad3f4d..0aa17a7fa10 100644
103103--- a/src/nsterm.m
104104+++ b/src/nsterm.m
105105@@ -1810,6 +1810,44 @@ Hide the window (X11 semantics)
@@ -147,7 +147,7 @@ index c705a3c78f4..707f16d8de5 100644
147147 void
148148 ns_set_parent_frame (struct frame *f, Lisp_Object new_value, Lisp_Object old_value)
149149 /* --------------------------------------------------------------------------
150- @@ -9277 ,6 +9315 ,11 @@ - (instancetype) initWithEmacsFrame: (struct frame *) f
150+ @@ -9360 ,6 +9398 ,11 @@ - (instancetype) initWithEmacsFrame: (struct frame *) f
151151 | NSWindowStyleMaskMiniaturizable
152152 | NSWindowStyleMaskClosable);
153153
@@ -159,7 +159,7 @@ index c705a3c78f4..707f16d8de5 100644
159159 last_drag_event = nil;
160160
161161 width = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, f->text_cols);
162- @@ -9360 ,13 +9403 ,22 @@ - (instancetype) initWithEmacsFrame: (struct frame *) f
162+ @@ -9443 ,13 +9486 ,22 @@ - (instancetype) initWithEmacsFrame: (struct frame *) f
163163 #endif
164164 }
165165
0 commit comments