unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Patch to add tab bar support to the nextstep port
       [not found] <87h7dkped6.fsf.ref@yahoo.com>
@ 2021-10-14  1:46 ` Po Lu
  2021-10-14  1:50   ` Po Lu
  2021-10-14 16:14   ` Juri Linkov
  0 siblings, 2 replies; 11+ messages in thread
From: Po Lu @ 2021-10-14  1:46 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 195 bytes --]


This seems to work fine on GNUStep but I don't have access to a Mac I
can test it with.

If I haven't made any obvious mistake, and it works on macOS, I'd like
this to be installed.  Thanks :)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Add-tab-bar-support-for-nextstep.patch --]
[-- Type: text/x-patch, Size: 6394 bytes --]

* src/nsfns.m (ns_change_tab_bar_height): New function
* src/nsfns.m (ns_set_tab_bar_lines): Check tab bar height and set tab
bar accordingly
* src/nsterm.m (ns_clear_under_internal_border): Clear internal border
correctly when there is a tab bar
* src/nsterm.m (ns_create_terminal): Add ns_change_tab_bar_height
* src/nsterm.m (mouseDown): Handle tab bar mouse click events
---
 src/nsfns.m  | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 src/nsterm.h |  1 +
 src/nsterm.m | 42 ++++++++++++++++++++++++++---------
 3 files changed, 93 insertions(+), 13 deletions(-)

diff --git a/src/nsfns.m b/src/nsfns.m
index 906c5c934f..797d0ce782 100644
--- a/src/nsfns.m
+++ b/src/nsfns.m
@@ -609,13 +609,72 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side.
     }
 }
 
+void
+ns_change_tab_bar_height (struct frame *f, int height)
+{
+  int unit = FRAME_LINE_HEIGHT (f);
+  int old_height = FRAME_TAB_BAR_HEIGHT (f);
+  int lines = (height + unit - 1) / unit;
+  Lisp_Object fullscreen = get_frame_param (f, Qfullscreen);
+
+  /* Make sure we redisplay all windows in this frame.  */
+  fset_redisplay (f);
+
+  /* Recalculate tab bar and frame text sizes.  */
+  FRAME_TAB_BAR_HEIGHT (f) = height;
+  FRAME_TAB_BAR_LINES (f) = lines;
+  store_frame_param (f, Qtab_bar_lines, make_fixnum (lines));
+
+  if (FRAME_NS_WINDOW (f) && FRAME_TAB_BAR_HEIGHT (f) == 0)
+    {
+      clear_frame (f);
+      clear_current_matrices (f);
+    }
+
+  if ((height < old_height) && WINDOWP (f->tab_bar_window))
+    clear_glyph_matrix (XWINDOW (f->tab_bar_window)->current_matrix);
+
+  if (!f->tab_bar_resized)
+    {
+      /* As long as tab_bar_resized is false, effectively try to change
+	 F's native height.  */
+      if (NILP (fullscreen) || EQ (fullscreen, Qfullwidth))
+	adjust_frame_size (f, FRAME_TEXT_WIDTH (f), FRAME_TEXT_HEIGHT (f),
+			   1, false, Qtab_bar_lines);
+      else
+	adjust_frame_size (f, -1, -1, 4, false, Qtab_bar_lines);
+
+      f->tab_bar_resized = f->tab_bar_redisplayed;
+    }
+  else
+    /* Any other change may leave the native size of F alone.  */
+    adjust_frame_size (f, -1, -1, 3, false, Qtab_bar_lines);
+
+  /* adjust_frame_size might not have done anything, garbage frame
+     here.  */
+  adjust_frame_glyphs (f);
+  SET_FRAME_GARBAGED (f);
+}
 
 /* tabbar support */
 static void
 ns_set_tab_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval)
 {
-  /* Currently unimplemented.  */
-  NSTRACE ("ns_set_tab_bar_lines");
+  int olines = FRAME_TAB_BAR_LINES (f);
+  int nlines;
+
+  /* Treat tab bars like menu bars.  */
+  if (FRAME_MINIBUF_ONLY_P (f))
+    return;
+
+  /* Use VALUE only if an int >= 0.  */
+  if (RANGED_FIXNUMP (0, value, INT_MAX))
+    nlines = XFIXNAT (value);
+  else
+    nlines = 0;
+
+  if (nlines != olines && (olines == 0 || nlines == 0))
+    ns_change_tab_bar_height (f, nlines * FRAME_LINE_HEIGHT (f));
 }
 
 
diff --git a/src/nsterm.h b/src/nsterm.h
index 46733e6949..4bbcf43973 100644
--- a/src/nsterm.h
+++ b/src/nsterm.h
@@ -1136,6 +1136,7 @@ ns_query_color (void *col, Emacs_Color *color_def, bool setPixel);
                                     Lisp_Object oldval);
 extern void ns_set_scroll_bar_default_width (struct frame *f);
 extern void ns_set_scroll_bar_default_height (struct frame *f);
+extern void ns_change_tab_bar_height (struct frame *f, int height);
 extern const char *ns_get_string_resource (void *_rdb,
                                            const char *name,
                                            const char *class);
diff --git a/src/nsterm.m b/src/nsterm.m
index a6c2e7505b..515d4c8054 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -2721,11 +2721,10 @@ Hide the window (X11 semantics)
 
   if (FRAME_LIVE_P (f) && FRAME_INTERNAL_BORDER_WIDTH (f) > 0)
     {
-      int border_width = FRAME_INTERNAL_BORDER_WIDTH (f);
-      NSView *view = FRAME_NS_VIEW (f);
-      NSRect edge_rect, frame_rect = [view bounds];
-      NSRectEdge edge[] = {NSMinXEdge, NSMinYEdge, NSMaxXEdge, NSMaxYEdge};
-
+      int border = FRAME_INTERNAL_BORDER_WIDTH (f);
+      int width = FRAME_PIXEL_WIDTH (f);
+      int height = FRAME_PIXEL_HEIGHT (f);
+      int margin = FRAME_TOP_MARGIN_HEIGHT (f);
       int face_id =
         (FRAME_PARENT_FRAME (f)
          ? (!NILP (Vface_remapping_alist)
@@ -2747,12 +2746,12 @@ Hide the window (X11 semantics)
 
       ns_focus (f, NULL, 1);
       [ns_lookup_indexed_color (NS_FACE_BACKGROUND (face), f) set];
-      for (int i = 0; i < 4 ; i++)
-        {
-          NSDivideRect (frame_rect, &edge_rect, &frame_rect, border_width, edge[i]);
 
-          NSRectFill (edge_rect);
-        }
+      NSRectFill (NSMakeRect (0, margin, width, border));
+      NSRectFill (NSMakeRect (0, 0, border, height));
+      NSRectFill (NSMakeRect (0, margin, width, border));
+      NSRectFill (NSMakeRect (width - border, 0, border, height));
+      NSRectFill (NSMakeRect (0, height - border, width, border));
       ns_unfocus (f);
     }
 }
@@ -5066,6 +5065,7 @@ static Lisp_Object ns_new_font (struct frame *f, Lisp_Object font_object,
   terminal->free_pixmap = ns_free_pixmap;
   terminal->delete_frame_hook = ns_destroy_window;
   terminal->delete_terminal_hook = ns_delete_terminal;
+  terminal->change_tab_bar_height_hook = ns_change_tab_bar_height;
   /* Other hooks are NULL by default.  */
 
   return terminal;
@@ -6675,7 +6675,27 @@ - (void)mouseDown: (NSEvent *)theEvent
     }
   else
     {
-      emacs_event->kind = MOUSE_CLICK_EVENT;
+      Lisp_Object tab_bar_arg = Qnil;
+      bool tab_bar_p;
+
+      if (WINDOWP (emacsframe->tab_bar_window)
+	  && WINDOW_TOTAL_LINES (XWINDOW (emacsframe->tab_bar_window)))
+	{
+	  Lisp_Object window;
+	  int x = lrint (p.x);
+	  int y = lrint (p.y);
+
+	  window = window_from_coordinates (emacsframe, x, y, 0, true, true);
+	  tab_bar_p = EQ (window, emacsframe->tab_bar_window);
+
+	  if (tab_bar_p)
+	    tab_bar_arg = handle_tab_bar_click (emacsframe, x, y, EV_UDMODIFIERS (theEvent) & down_modifier,
+						EV_MODIFIERS (theEvent) | EV_UDMODIFIERS (theEvent));
+	}
+
+      if (!(tab_bar_p && NILP (tab_bar_arg)))
+	emacs_event->kind = MOUSE_CLICK_EVENT;
+      emacs_event->arg = tab_bar_arg;
       emacs_event->code = EV_BUTTON (theEvent);
       emacs_event->modifiers = EV_MODIFIERS (theEvent)
                              | EV_UDMODIFIERS (theEvent);
2.31.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: Patch to add tab bar support to the nextstep port
  2021-10-14  1:46 ` Patch to add tab bar support to the nextstep port Po Lu
@ 2021-10-14  1:50   ` Po Lu
  2021-10-14  6:32     ` Antoine Kalmbach
                       ` (3 more replies)
  2021-10-14 16:14   ` Juri Linkov
  1 sibling, 4 replies; 11+ messages in thread
From: Po Lu @ 2021-10-14  1:50 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 99 bytes --]


Never mind that, I'm still learning my way around Git.
Here's the correct version of that patch:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Add-tab-bar-support-for-nextstep.patch --]
[-- Type: text/x-patch, Size: 6402 bytes --]

* src/nsfns.m (ns_change_tab_bar_height): New function
* src/nsfns.m (ns_set_tab_bar_lines): Check tab bar height and set tab
bar accordingly
* src/nsterm.m (ns_clear_under_internal_border): Clear internal border
correctly when there is a tab bar
* src/nsterm.m (ns_create_terminal): Add ns_change_tab_bar_height
* src/nsterm.m (mouseDown): Handle tab bar mouse click events
---
 src/nsfns.m  | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 src/nsterm.h |  1 +
 src/nsterm.m | 42 ++++++++++++++++++++++++++---------
 3 files changed, 93 insertions(+), 13 deletions(-)

diff --git a/src/nsfns.m b/src/nsfns.m
index 906c5c934f..797d0ce782 100644
--- a/src/nsfns.m
+++ b/src/nsfns.m
@@ -609,13 +609,72 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side.
     }
 }
 
+void
+ns_change_tab_bar_height (struct frame *f, int height)
+{
+  int unit = FRAME_LINE_HEIGHT (f);
+  int old_height = FRAME_TAB_BAR_HEIGHT (f);
+  int lines = (height + unit - 1) / unit;
+  Lisp_Object fullscreen = get_frame_param (f, Qfullscreen);
+
+  /* Make sure we redisplay all windows in this frame.  */
+  fset_redisplay (f);
+
+  /* Recalculate tab bar and frame text sizes.  */
+  FRAME_TAB_BAR_HEIGHT (f) = height;
+  FRAME_TAB_BAR_LINES (f) = lines;
+  store_frame_param (f, Qtab_bar_lines, make_fixnum (lines));
+
+  if (FRAME_NS_WINDOW (f) && FRAME_TAB_BAR_HEIGHT (f) == 0)
+    {
+      clear_frame (f);
+      clear_current_matrices (f);
+    }
+
+  if ((height < old_height) && WINDOWP (f->tab_bar_window))
+    clear_glyph_matrix (XWINDOW (f->tab_bar_window)->current_matrix);
+
+  if (!f->tab_bar_resized)
+    {
+      /* As long as tab_bar_resized is false, effectively try to change
+	 F's native height.  */
+      if (NILP (fullscreen) || EQ (fullscreen, Qfullwidth))
+	adjust_frame_size (f, FRAME_TEXT_WIDTH (f), FRAME_TEXT_HEIGHT (f),
+			   1, false, Qtab_bar_lines);
+      else
+	adjust_frame_size (f, -1, -1, 4, false, Qtab_bar_lines);
+
+      f->tab_bar_resized = f->tab_bar_redisplayed;
+    }
+  else
+    /* Any other change may leave the native size of F alone.  */
+    adjust_frame_size (f, -1, -1, 3, false, Qtab_bar_lines);
+
+  /* adjust_frame_size might not have done anything, garbage frame
+     here.  */
+  adjust_frame_glyphs (f);
+  SET_FRAME_GARBAGED (f);
+}
 
 /* tabbar support */
 static void
 ns_set_tab_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval)
 {
-  /* Currently unimplemented.  */
-  NSTRACE ("ns_set_tab_bar_lines");
+  int olines = FRAME_TAB_BAR_LINES (f);
+  int nlines;
+
+  /* Treat tab bars like menu bars.  */
+  if (FRAME_MINIBUF_ONLY_P (f))
+    return;
+
+  /* Use VALUE only if an int >= 0.  */
+  if (RANGED_FIXNUMP (0, value, INT_MAX))
+    nlines = XFIXNAT (value);
+  else
+    nlines = 0;
+
+  if (nlines != olines && (olines == 0 || nlines == 0))
+    ns_change_tab_bar_height (f, nlines * FRAME_LINE_HEIGHT (f));
 }
 
 
diff --git a/src/nsterm.h b/src/nsterm.h
index 46733e6949..4bbcf43973 100644
--- a/src/nsterm.h
+++ b/src/nsterm.h
@@ -1136,6 +1136,7 @@ ns_query_color (void *col, Emacs_Color *color_def, bool setPixel);
                                     Lisp_Object oldval);
 extern void ns_set_scroll_bar_default_width (struct frame *f);
 extern void ns_set_scroll_bar_default_height (struct frame *f);
+extern void ns_change_tab_bar_height (struct frame *f, int height);
 extern const char *ns_get_string_resource (void *_rdb,
                                            const char *name,
                                            const char *class);
diff --git a/src/nsterm.m b/src/nsterm.m
index a6c2e7505b..515d4c8054 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -2721,11 +2721,10 @@ Hide the window (X11 semantics)
 
   if (FRAME_LIVE_P (f) && FRAME_INTERNAL_BORDER_WIDTH (f) > 0)
     {
-      int border_width = FRAME_INTERNAL_BORDER_WIDTH (f);
-      NSView *view = FRAME_NS_VIEW (f);
-      NSRect edge_rect, frame_rect = [view bounds];
-      NSRectEdge edge[] = {NSMinXEdge, NSMinYEdge, NSMaxXEdge, NSMaxYEdge};
-
+      int border = FRAME_INTERNAL_BORDER_WIDTH (f);
+      int width = FRAME_PIXEL_WIDTH (f);
+      int height = FRAME_PIXEL_HEIGHT (f);
+      int margin = FRAME_TOP_MARGIN_HEIGHT (f);
       int face_id =
         (FRAME_PARENT_FRAME (f)
          ? (!NILP (Vface_remapping_alist)
@@ -2747,12 +2746,12 @@ Hide the window (X11 semantics)
 
       ns_focus (f, NULL, 1);
       [ns_lookup_indexed_color (NS_FACE_BACKGROUND (face), f) set];
-      for (int i = 0; i < 4 ; i++)
-        {
-          NSDivideRect (frame_rect, &edge_rect, &frame_rect, border_width, edge[i]);
 
-          NSRectFill (edge_rect);
-        }
+      NSRectFill (NSMakeRect (0, margin, width, border));
+      NSRectFill (NSMakeRect (0, 0, border, height));
+      NSRectFill (NSMakeRect (0, margin, width, border));
+      NSRectFill (NSMakeRect (width - border, 0, border, height));
+      NSRectFill (NSMakeRect (0, height - border, width, border));
       ns_unfocus (f);
     }
 }
@@ -5066,6 +5065,7 @@ static Lisp_Object ns_new_font (struct frame *f, Lisp_Object font_object,
   terminal->free_pixmap = ns_free_pixmap;
   terminal->delete_frame_hook = ns_destroy_window;
   terminal->delete_terminal_hook = ns_delete_terminal;
+  terminal->change_tab_bar_height_hook = ns_change_tab_bar_height;
   /* Other hooks are NULL by default.  */
 
   return terminal;
@@ -6675,7 +6675,27 @@ - (void)mouseDown: (NSEvent *)theEvent
     }
   else
     {
-      emacs_event->kind = MOUSE_CLICK_EVENT;
+      Lisp_Object tab_bar_arg = Qnil;
+      bool tab_bar_p = false;
+
+      if (WINDOWP (emacsframe->tab_bar_window)
+	  && WINDOW_TOTAL_LINES (XWINDOW (emacsframe->tab_bar_window)))
+	{
+	  Lisp_Object window;
+	  int x = lrint (p.x);
+	  int y = lrint (p.y);
+
+	  window = window_from_coordinates (emacsframe, x, y, 0, true, true);
+	  tab_bar_p = EQ (window, emacsframe->tab_bar_window);
+
+	  if (tab_bar_p)
+	    tab_bar_arg = handle_tab_bar_click (emacsframe, x, y, EV_UDMODIFIERS (theEvent) & down_modifier,
+						EV_MODIFIERS (theEvent) | EV_UDMODIFIERS (theEvent));
+	}
+
+      if (!(tab_bar_p && NILP (tab_bar_arg)))
+	emacs_event->kind = MOUSE_CLICK_EVENT;
+      emacs_event->arg = tab_bar_arg;
       emacs_event->code = EV_BUTTON (theEvent);
       emacs_event->modifiers = EV_MODIFIERS (theEvent)
                              | EV_UDMODIFIERS (theEvent);
2.31.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: Patch to add tab bar support to the nextstep port
  2021-10-14  1:50   ` Po Lu
@ 2021-10-14  6:32     ` Antoine Kalmbach
  2021-10-14 22:14     ` Diego Alvarez
                       ` (2 subsequent siblings)
  3 siblings, 0 replies; 11+ messages in thread
From: Antoine Kalmbach @ 2021-10-14  6:32 UTC (permalink / raw)
  To: Po Lu; +Cc: emacs-devel


Tested this on macOS Catalina, using Emacs master. Works fine!

-- 
Antoine Kalmbach



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Patch to add tab bar support to the nextstep port
  2021-10-14  1:46 ` Patch to add tab bar support to the nextstep port Po Lu
  2021-10-14  1:50   ` Po Lu
@ 2021-10-14 16:14   ` Juri Linkov
  1 sibling, 0 replies; 11+ messages in thread
From: Juri Linkov @ 2021-10-14 16:14 UTC (permalink / raw)
  To: Po Lu; +Cc: emacs-devel

> This seems to work fine on GNUStep but I don't have access to a Mac I
> can test it with.
>
> If I haven't made any obvious mistake, and it works on macOS, I'd like
> this to be installed.

Thank you very much!  Any hope to install this on Emacs 28
since many users waited for this for a long time.



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Patch to add tab bar support to the nextstep port
  2021-10-14  1:50   ` Po Lu
  2021-10-14  6:32     ` Antoine Kalmbach
@ 2021-10-14 22:14     ` Diego Alvarez
  2021-10-15 12:47     ` Stefan Kangas
  2021-10-15 18:07     ` Alan Third
  3 siblings, 0 replies; 11+ messages in thread
From: Diego Alvarez @ 2021-10-14 22:14 UTC (permalink / raw)
  To: Po Lu; +Cc: emacs-devel

Tested on macOS Big Sur 11.6, emacs28 branch and it worked!

Any change to add this on the emacs28 branch?

> On Oct 13, 2021, at 6:50 PM, Po Lu <luangruo@yahoo.com> wrote:
> 
> 
> Never mind that, I'm still learning my way around Git.
> Here's the correct version of that patch:
> 
> <0001-Add-tab-bar-support-for-nextstep.patch>




^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Patch to add tab bar support to the nextstep port
@ 2021-10-15 11:14 Illia Ostapyshyn
  2021-10-15 13:58 ` Stefan Kangas
  0 siblings, 1 reply; 11+ messages in thread
From: Illia Ostapyshyn @ 2021-10-15 11:14 UTC (permalink / raw)
  To: emacs-devel; +Cc: luangruo

Just as I was looking into this myself, Po Lu delivers :-)  Thank you!

Tested on MacBookPro15,2, Big Sur 11.6.  Would also hope to see this installed in emacs-28 branch.


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Patch to add tab bar support to the nextstep port
  2021-10-14  1:50   ` Po Lu
  2021-10-14  6:32     ` Antoine Kalmbach
  2021-10-14 22:14     ` Diego Alvarez
@ 2021-10-15 12:47     ` Stefan Kangas
  2021-10-15 18:07     ` Alan Third
  3 siblings, 0 replies; 11+ messages in thread
From: Stefan Kangas @ 2021-10-15 12:47 UTC (permalink / raw)
  To: Po Lu; +Cc: Emacs developers

Po Lu <luangruo@yahoo.com> writes:

> Never mind that, I'm still learning my way around Git.
> Here's the correct version of that patch:

We commonly just use:

    git format-patch -1

Then you can just apply the patch with e.g.:

    git am -3 0001-foo-bar.patch



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Patch to add tab bar support to the nextstep port
  2021-10-15 11:14 Illia Ostapyshyn
@ 2021-10-15 13:58 ` Stefan Kangas
  0 siblings, 0 replies; 11+ messages in thread
From: Stefan Kangas @ 2021-10-15 13:58 UTC (permalink / raw)
  To: Illia Ostapyshyn; +Cc: Po Lu, Emacs developers

Illia Ostapyshyn <ilya.ostapyshyn@gmail.com> writes:

> Just as I was looking into this myself, Po Lu delivers :-)  Thank you!
>
> Tested on MacBookPro15,2, Big Sur 11.6.  Would also hope to see this installed in emacs-28 branch.

I have tested this patch on my MacBook Pro from 2015, running High
Sierra 10.13.6, and it seems to work as it should from my light
testing.  I will continue running it and report back if I run into any
issues.

BTW, I included my hardware above because Illia did so, but does the
exact hardware matter for our purposes?  I would like to know whether
I should make including that information a habit, as until now I have
only included the version of macOS.



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Patch to add tab bar support to the nextstep port
  2021-10-14  1:50   ` Po Lu
                       ` (2 preceding siblings ...)
  2021-10-15 12:47     ` Stefan Kangas
@ 2021-10-15 18:07     ` Alan Third
  2021-10-15 19:05       ` Eli Zaretskii
  3 siblings, 1 reply; 11+ messages in thread
From: Alan Third @ 2021-10-15 18:07 UTC (permalink / raw)
  To: Po Lu; +Cc: emacs-devel

On Thu, Oct 14, 2021 at 09:50:23AM +0800, Po Lu wrote:
> 
> Never mind that, I'm still learning my way around Git.
> Here's the correct version of that patch:

Looks good to me.

As for whether it can go into Emacs 28 that's up to Eli and Lars. I
don't see anything particularly controversial in there.
-- 
Alan Third



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Patch to add tab bar support to the nextstep port
  2021-10-15 18:07     ` Alan Third
@ 2021-10-15 19:05       ` Eli Zaretskii
  2021-10-15 23:41         ` Po Lu
  0 siblings, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2021-10-15 19:05 UTC (permalink / raw)
  To: Alan Third; +Cc: luangruo, emacs-devel

> Date: Fri, 15 Oct 2021 19:07:09 +0100
> From: Alan Third <alan@idiocy.org>
> Cc: emacs-devel@gnu.org
> 
> On Thu, Oct 14, 2021 at 09:50:23AM +0800, Po Lu wrote:
> > 
> > Never mind that, I'm still learning my way around Git.
> > Here's the correct version of that patch:
> 
> Looks good to me.
> 
> As for whether it can go into Emacs 28 that's up to Eli and Lars. I
> don't see anything particularly controversial in there.

It's fine with me to install this on the release branch, if the code
looks fine to you.  After all, this code is only used when the user
turns on tab-bar-mode, which otherwise does nothing useful, right?



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Patch to add tab bar support to the nextstep port
  2021-10-15 19:05       ` Eli Zaretskii
@ 2021-10-15 23:41         ` Po Lu
  0 siblings, 0 replies; 11+ messages in thread
From: Po Lu @ 2021-10-15 23:41 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Alan Third, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> It's fine with me to install this on the release branch, if the code
> looks fine to you.  After all, this code is only used when the user
> turns on tab-bar-mode, which otherwise does nothing useful, right?

Yes.  NS port people have also been pining for tab bar support for a
while, so I think it would be well appreciated.



^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2021-10-15 23:41 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <87h7dkped6.fsf.ref@yahoo.com>
2021-10-14  1:46 ` Patch to add tab bar support to the nextstep port Po Lu
2021-10-14  1:50   ` Po Lu
2021-10-14  6:32     ` Antoine Kalmbach
2021-10-14 22:14     ` Diego Alvarez
2021-10-15 12:47     ` Stefan Kangas
2021-10-15 18:07     ` Alan Third
2021-10-15 19:05       ` Eli Zaretskii
2021-10-15 23:41         ` Po Lu
2021-10-14 16:14   ` Juri Linkov
2021-10-15 11:14 Illia Ostapyshyn
2021-10-15 13:58 ` Stefan Kangas

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).