* src/nsterm.m: fix window tabbing on macOS
@ 2021-05-08 9:26 Paul W. Rankin via Emacs development discussions.
2021-05-08 11:21 ` Alan Third
0 siblings, 1 reply; 44+ messages in thread
From: Paul W. Rankin via Emacs development discussions. @ 2021-05-08 9:26 UTC (permalink / raw)
To: emacs-devel
[-- Attachment #1: Type: text/plain, Size: 136 bytes --]
src/nsterm.m: use NSWindowTabbingModeAutomatic to respect user choice.
Tabbed window managers are now widely available for free systems.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-src-nsterm.m-fix-window-tabbing-on-macOS.patch --]
[-- Type: text/x-diff; name=0001-src-nsterm.m-fix-window-tabbing-on-macOS.patch, Size: 1338 bytes --]
From 930d5ccfa2e8356e8daf8036f2487bb30a103893 Mon Sep 17 00:00:00 2001
From: "Paul W. Rankin" <pwr@bydasein.com>
Date: Sat, 8 May 2021 19:09:59 +1000
Subject: [PATCH] src/nsterm.m: fix window tabbing on macOS
* src/nsterm.m: use NSWindowTabbingModeAutomatic to respect user choice.
Tabbed window managers are now widely available for free systems.
---
src/nsterm.m | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/nsterm.m b/src/nsterm.m
index bb20886ab1..def1aec285 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -7628,12 +7628,12 @@ - (instancetype) initFrameFromEmacs: (struct frame *)f
selector:@selector (viewDidResize:)
name:NSViewFrameDidChangeNotification object:nil];
- /* macOS Sierra automatically enables tabbed windows. We can't
- allow this to be enabled until it's available on a Free system.
- Currently it only happens by accident and is buggy anyway. */
+ /* macOS Sierra automatically enables tabbed windows. Tabbed window
+ managers are now also widely available on free operating
+ systems. */
#ifdef NS_IMPL_COCOA
if ([win respondsToSelector: @selector(setTabbingMode:)])
- [win setTabbingMode: NSWindowTabbingModeDisallowed];
+ [win setTabbingMode: NSWindowTabbingModeAutomatic];
#endif
ns_window_num++;
--
2.31.1
^ permalink raw reply related [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-08 9:26 src/nsterm.m: fix window tabbing on macOS Paul W. Rankin via Emacs development discussions.
@ 2021-05-08 11:21 ` Alan Third
2021-05-08 12:27 ` Paul W. Rankin via Emacs development discussions.
0 siblings, 1 reply; 44+ messages in thread
From: Alan Third @ 2021-05-08 11:21 UTC (permalink / raw)
To: Paul W. Rankin; +Cc: emacs-devel
On Sat, May 08, 2021 at 07:26:41PM +1000, Paul W. Rankin via Emacs development discussions. wrote:
> src/nsterm.m: use NSWindowTabbingModeAutomatic to respect user choice.
> Tabbed window managers are now widely available for free systems.
For the record the tabbing being enabled here is not Emacs's own
tabbing, it's a macOS method of combining multiple OS windows into
one. Emacs's tabbing has still to be implemented on the NS port (I've
no interest as I think tabbed windows are an abomination that should
be burnt on sight, but would happily let someone else implement it).
Paul, is this still the absolute disaster it was when it first
appeared where some random Emacs frames would get combined but not
others, not to mention the crashes? Also there was no "user choice" as
I recall, it just happened without any warning or input from the user,
at random.
Is it actually stable and usable now?
--
Alan Third
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-08 11:21 ` Alan Third
@ 2021-05-08 12:27 ` Paul W. Rankin via Emacs development discussions.
2021-05-08 12:35 ` Paul W. Rankin via Emacs development discussions.
2021-05-10 19:53 ` Alan Third
0 siblings, 2 replies; 44+ messages in thread
From: Paul W. Rankin via Emacs development discussions. @ 2021-05-08 12:27 UTC (permalink / raw)
To: Alan Third; +Cc: emacs-devel
> On 8 May 2021, at 9:21 pm, Alan Third <alan@idiocy.org> wrote:
>> src/nsterm.m: use NSWindowTabbingModeAutomatic to respect user choice.
>> Tabbed window managers are now widely available for free systems.
>
> For the record the tabbing being enabled here is not Emacs's own
> tabbing, it's a macOS method of combining multiple OS windows into
> one. Emacs's tabbing has still to be implemented on the NS port (I've
> no interest as I think tabbed windows are an abomination that should
> be burnt on sight, but would happily let someone else implement it).
I think all the more reason not to hobble the macOS window manager! But
yes it should be noted that tabs here are in the context of window
management (i.e. Emacs frames) not tab-bar-mode. A Linux counterpart
would be https://tools.suckless.org/tabbed/
> Paul, is this still the absolute disaster it was when it first
> appeared where some random Emacs frames would get combined but not
> others, not to mention the crashes? Also there was no "user choice" as
> I recall, it just happened without any warning or input from the user,
> at random.
>
> Is it actually stable and usable now?
I've been building Emacs with this change applied for several years now
across a few different macOS versions and I've never experienced a crash
or unexpected behaviour. But it depends on what you might be doing that
I'm not; can you provide a step-by-step?
The user choice I refer to resides in the odd place of System
Preferences > Dock > Prefer tabs when opening documents: [Always | In
Full Screen Only | Manually]. The behaviour I've experienced with each
of these is:
- Always: invoking `make-new-frame' will always create a frame in a new
tab
- In Full Screen Only: invoking `make-new-frame' will create a frame in
a new tab only when `(frame-parameter nil 'fullscreen)' is non-nil
- Manually: `make-new-frame' will never create new tabs
(Off topic but it would be nice if there were some mention in the docs
that tab-bar-mode does not function at all on macOS rather than silently
failing.)
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-08 12:27 ` Paul W. Rankin via Emacs development discussions.
@ 2021-05-08 12:35 ` Paul W. Rankin via Emacs development discussions.
2021-05-10 19:53 ` Alan Third
1 sibling, 0 replies; 44+ messages in thread
From: Paul W. Rankin via Emacs development discussions. @ 2021-05-08 12:35 UTC (permalink / raw)
To: Alan Third; +Cc: emacs-devel
On 2021-05-08 22:27, Paul W. Rankin wrote:
> (Off topic but it would be nice if there were some mention in the docs
> that tab-bar-mode does not function at all on macOS rather than
> silently failing.)
Correction: does not function in macOS GUI client; console works.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-08 12:27 ` Paul W. Rankin via Emacs development discussions.
2021-05-08 12:35 ` Paul W. Rankin via Emacs development discussions.
@ 2021-05-10 19:53 ` Alan Third
2021-05-11 5:45 ` Paul W. Rankin via Emacs development discussions.
1 sibling, 1 reply; 44+ messages in thread
From: Alan Third @ 2021-05-10 19:53 UTC (permalink / raw)
To: Paul W. Rankin; +Cc: emacs-devel
On Sat, May 08, 2021 at 10:27:13PM +1000, Paul W. Rankin wrote:
> > On 8 May 2021, at 9:21 pm, Alan Third <alan@idiocy.org> wrote:
> > > src/nsterm.m: use NSWindowTabbingModeAutomatic to respect user choice.
> > > Tabbed window managers are now widely available for free systems.
> >
> > For the record the tabbing being enabled here is not Emacs's own
> > tabbing, it's a macOS method of combining multiple OS windows into
> > one. Emacs's tabbing has still to be implemented on the NS port (I've
> > no interest as I think tabbed windows are an abomination that should
> > be burnt on sight, but would happily let someone else implement it).
>
> I think all the more reason not to hobble the macOS window manager! But yes
> it should be noted that tabs here are in the context of window management
> (i.e. Emacs frames) not tab-bar-mode. A Linux counterpart would be
> https://tools.suckless.org/tabbed/
I reckon this is probably OK, but I'll leave it a bit longer to see if
anyone else has an opinion.
> > Paul, is this still the absolute disaster it was when it first
> > appeared where some random Emacs frames would get combined but not
> > others, not to mention the crashes? Also there was no "user choice" as
> > I recall, it just happened without any warning or input from the user,
> > at random.
> >
> > Is it actually stable and usable now?
>
> I've been building Emacs with this change applied for several years now
> across a few different macOS versions and I've never experienced a crash or
> unexpected behaviour. But it depends on what you might be doing that I'm
> not; can you provide a step-by-step?
IIRC, it would just crash pretty much at random, and without much
prompting, so you'd likely know if it was still a problem.
Most likely the fullscreen crash fixes from a couple of years ago
solved it.
> The user choice I refer to resides in the odd place of System Preferences >
> Dock > Prefer tabs when opening documents: [Always | In Full Screen Only |
> Manually]. The behaviour I've experienced with each of these is:
>
> - Always: invoking `make-new-frame' will always create a frame in a new tab
> - In Full Screen Only: invoking `make-new-frame' will create a frame in a
> new tab only when `(frame-parameter nil 'fullscreen)' is non-nil
> - Manually: `make-new-frame' will never create new tabs
That location really doesn't much sense! Certainly explains why I've
never seen it before. :)
This is really my lastremaining concern, that it's such an obscure
setting that we'll get a lot of bug reports about Emacs-doing-tabs
when-I-don't-want-it-to. I'm not sure there's a good solution to that
other than perhaps putting a note in the NS port documentation (which
afaict nobody ever reads anyway).
BTW, is there an advantage to explicitly enabling the default setting
over just removing the code that disables it?
--
Alan Third
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-10 19:53 ` Alan Third
@ 2021-05-11 5:45 ` Paul W. Rankin via Emacs development discussions.
2021-05-11 19:20 ` chad
2021-05-12 21:23 ` Alan Third
0 siblings, 2 replies; 44+ messages in thread
From: Paul W. Rankin via Emacs development discussions. @ 2021-05-11 5:45 UTC (permalink / raw)
To: Paul W. Rankin; +Cc: emacs-devel
On 2021-05-11 05:53, Alan Third wrote:
> On Sat, May 08, 2021 at 10:27:13PM +1000, Paul W. Rankin wrote:
> I reckon this is probably OK, but I'll leave it a bit longer to see if
> anyone else has an opinion.
If I'm not mistaken, it is the fourth commandment of emacs-devel that
someone must raise an objection. Especially if the change does not
affect them.
> IIRC, it would just crash pretty much at random, and without much
> prompting, so you'd likely know if it was still a problem.
>
> Most likely the fullscreen crash fixes from a couple of years ago
> solved it.
I'm on macOS 10.13 Hi Sarah and previously was on 10.14 and 10.15, but
if anyone is on macOS 11 Big Slurp it may be worth building/testing.
>> The user choice I refer to resides in the odd place of System
>> Preferences >
>> Dock > Prefer tabs when opening documents: [Always | In Full Screen
>> Only |
>> Manually]. The behaviour I've experienced with each of these is:
>>
>> - Always: invoking `make-new-frame' will always create a frame in a
>> new tab
>> - In Full Screen Only: invoking `make-new-frame' will create a frame
>> in a
>> new tab only when `(frame-parameter nil 'fullscreen)' is non-nil
>> - Manually: `make-new-frame' will never create new tabs
I should clarify here that the macOS window manager is not querying
Emacs frame parameters. Correlation not causation!
> That location really doesn't much sense! Certainly explains why I've
> never seen it before. :)
>
> This is really my lastremaining concern, that it's such an obscure
> setting that we'll get a lot of bug reports about Emacs-doing-tabs
> when-I-don't-want-it-to. I'm not sure there's a good solution to that
> other than perhaps putting a note in the NS port documentation (which
> afaict nobody ever reads anyway).
You are correct. I only looked at the nextstep/README file today.
Given that tabs look much a part of the macOS window system I think/hope
a person's first assumption would be that it's an Apple thing and
hopefully first burn out their ire on Apple forums/reddits/etc.
Nevertheless, we shouldn't inhibit all for the failings of a few.
The only thing that's a little weird is that this tab bar is not visible
when in full screen, requiring moving the mouse up to reveal it. It
would clearer what's happening if the tab bar behaved more like
Terminal.app when in full screen: opening more than a single tab keeps
the tab bar visible (in full screen or windowed).
Apple's documentation on this is very thin, so I doubt it's a simple
boolean switch:
https://developer.apple.com/documentation/appkit/nswindowtabgroup
> BTW, is there an advantage to explicitly enabling the default setting
> over just removing the code that disables it?
Sorry I am unqualified to offer an opinion here, other than if someone
wants to change it the code is already there for them to easily make the
change and rebuild Emacs.
Tangentially, this lead me to read a little about GNUstep. Does GNUstep
provide the same kind of tabbing as macOS?
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-11 5:45 ` Paul W. Rankin via Emacs development discussions.
@ 2021-05-11 19:20 ` chad
2021-05-12 9:47 ` Paul W. Rankin via Emacs development discussions.
2021-05-12 21:23 ` Alan Third
1 sibling, 1 reply; 44+ messages in thread
From: chad @ 2021-05-11 19:20 UTC (permalink / raw)
To: Paul W. Rankin; +Cc: EMACS development team
[-- Attachment #1: Type: text/plain, Size: 427 bytes --]
On Mon, May 10, 2021 at 10:54 PM Paul W. Rankin via Emacs development
discussions. <emacs-devel@gnu.org> wrote:
> I'm on macOS 10.13 Hi Sarah and previously was on 10.14 and 10.15, but
> if anyone is on macOS 11 Big Slurp it may be worth building/testing.
>
I don't have good access to macOS anymore, but I could borrow such a
machine for a few hours and try a build+test cycle if nobody else has
access. Let me know.
~Chad
[-- Attachment #2: Type: text/html, Size: 788 bytes --]
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-11 19:20 ` chad
@ 2021-05-12 9:47 ` Paul W. Rankin via Emacs development discussions.
0 siblings, 0 replies; 44+ messages in thread
From: Paul W. Rankin via Emacs development discussions. @ 2021-05-12 9:47 UTC (permalink / raw)
To: chad; +Cc: EMACS development team
On 2021-05-12 05:20, chad wrote:
>> I'm on macOS 10.13 Hi Sarah and previously was on 10.14 and 10.15, but
>> if anyone is on macOS 11 Big Slurp it may be worth building/testing.
>
> I don't have good access to macOS anymore, but I could borrow such a
> machine for a few hours and try a build+test cycle if nobody else has
> access. Let me know.
Probably not needed. Once merged into master there should be enough
people already on macOS to test.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-11 5:45 ` Paul W. Rankin via Emacs development discussions.
2021-05-11 19:20 ` chad
@ 2021-05-12 21:23 ` Alan Third
2021-05-13 5:46 ` Paul W. Rankin via Emacs development discussions.
1 sibling, 1 reply; 44+ messages in thread
From: Alan Third @ 2021-05-12 21:23 UTC (permalink / raw)
To: Paul W. Rankin; +Cc: emacs-devel
On Tue, May 11, 2021 at 03:45:08PM +1000, Paul W. Rankin via Emacs development discussions. wrote:
> On 2021-05-11 05:53, Alan Third wrote:
> > On Sat, May 08, 2021 at 10:27:13PM +1000, Paul W. Rankin wrote:
> > I reckon this is probably OK, but I'll leave it a bit longer to see if
> > anyone else has an opinion.
>
> If I'm not mistaken, it is the fourth commandment of emacs-devel that
> someone must raise an objection. Especially if the change does not affect
> them.
Indeed, then argue the point to the death. :)
> > That location really doesn't much sense! Certainly explains why I've
> > never seen it before. :)
> >
> > This is really my lastremaining concern, that it's such an obscure
> > setting that we'll get a lot of bug reports about Emacs-doing-tabs
> > when-I-don't-want-it-to. I'm not sure there's a good solution to that
> > other than perhaps putting a note in the NS port documentation (which
> > afaict nobody ever reads anyway).
>
> You are correct. I only looked at the nextstep/README file today.
>
> Given that tabs look much a part of the macOS window system I think/hope a
> person's first assumption would be that it's an Apple thing and hopefully
> first burn out their ire on Apple forums/reddits/etc. Nevertheless, we
> shouldn't inhibit all for the failings of a few.
Yes, I suppose we could put it in NEWS and hope that enough people see
it there to cover us in places like reddit.
> The only thing that's a little weird is that this tab bar is not visible
> when in full screen, requiring moving the mouse up to reveal it. It would
> clearer what's happening if the tab bar behaved more like Terminal.app when
> in full screen: opening more than a single tab keeps the tab bar visible (in
> full screen or windowed).
Isn't that how all the window chrome works in fullscreen? Do we do
some special thing to hide the toolbar? Perhaps we should rethink that
(although enough people run in fullscreen all the time that I suspect
that change would be genuinely contentious).
> Apple's documentation on this is very thin, so I doubt it's a simple boolean
> switch: https://developer.apple.com/documentation/appkit/nswindowtabgroup
I remember looking into whether we could leverage the tab bar for our
built-in tab stuff, but it's a disappointingly featureless API.
> > BTW, is there an advantage to explicitly enabling the default setting
> > over just removing the code that disables it?
>
> Sorry I am unqualified to offer an opinion here, other than if someone wants
> to change it the code is already there for them to easily make the change
> and rebuild Emacs.
If you just remove it completely does it do anything different from
your patch?
> Tangentially, this lead me to read a little about GNUstep. Does GNUstep
> provide the same kind of tabbing as macOS?
No, not to my knowledge. It may eventually, but unless someone's very
keen to implement it GNUstep tends to lag quite far behind the macOS
APIs.
--
Alan Third
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-12 21:23 ` Alan Third
@ 2021-05-13 5:46 ` Paul W. Rankin via Emacs development discussions.
2021-05-13 21:05 ` Alan Third
0 siblings, 1 reply; 44+ messages in thread
From: Paul W. Rankin via Emacs development discussions. @ 2021-05-13 5:46 UTC (permalink / raw)
To: Alan Third; +Cc: emacs-devel
On 2021-05-13 07:23, Alan Third wrote:
>> You are correct. I only looked at the nextstep/README file today.
>>
>> Given that tabs look much a part of the macOS window system I
>> think/hope a
>> person's first assumption would be that it's an Apple thing and
>> hopefully
>> first burn out their ire on Apple forums/reddits/etc. Nevertheless, we
>> shouldn't inhibit all for the failings of a few.
>
> Yes, I suppose we could put it in NEWS and hope that enough people see
> it there to cover us in places like reddit.
Agreed. People like reading about new features (or "features").
>> The only thing that's a little weird is that this tab bar is not
>> visible
>> when in full screen, requiring moving the mouse up to reveal it. It
>> would
>> clearer what's happening if the tab bar behaved more like Terminal.app
>> when
>> in full screen: opening more than a single tab keeps the tab bar
>> visible (in
>> full screen or windowed).
>
> Isn't that how all the window chrome works in fullscreen? Do we do
> some special thing to hide the toolbar? Perhaps we should rethink that
> (although enough people run in fullscreen all the time that I suspect
> that change would be genuinely contentious).
You're right and I can't find another macOS app with a tab bar that
behaves the way Emacs.app does, so I gotta assume there is something
somewhere overriding the Cocoa window manager behaviour. But I'm really
only qualified to guess; I looked through nsterm.m and changed a few
suspected BOOL values and recompiled a few times but nothing had an
effect on the hidden tab bar.
Relatedly, tool-bar-mode is in the same boat; hidden in full screen, but
probably shouldn't be.
> If you just remove it completely does it do anything different from
> your patch?
It appears that removing the code has the same effect as
NSWindowTabbingModeAutomatic. I like minimalism so happy to just remove
it.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-13 5:46 ` Paul W. Rankin via Emacs development discussions.
@ 2021-05-13 21:05 ` Alan Third
2021-05-16 9:16 ` Paul W. Rankin via Emacs development discussions.
0 siblings, 1 reply; 44+ messages in thread
From: Alan Third @ 2021-05-13 21:05 UTC (permalink / raw)
To: Paul W. Rankin; +Cc: emacs-devel
On Thu, May 13, 2021 at 03:46:54PM +1000, Paul W. Rankin via Emacs development discussions. wrote:
> On 2021-05-13 07:23, Alan Third wrote:
> > > The only thing that's a little weird is that this tab bar is not
> > > visible
> > > when in full screen, requiring moving the mouse up to reveal it. It
> > > would
> > > clearer what's happening if the tab bar behaved more like
> > > Terminal.app when
> > > in full screen: opening more than a single tab keeps the tab bar
> > > visible (in
> > > full screen or windowed).
> >
> > Isn't that how all the window chrome works in fullscreen? Do we do
> > some special thing to hide the toolbar? Perhaps we should rethink that
> > (although enough people run in fullscreen all the time that I suspect
> > that change would be genuinely contentious).
>
> You're right and I can't find another macOS app with a tab bar that behaves
> the way Emacs.app does, so I gotta assume there is something somewhere
> overriding the Cocoa window manager behaviour. But I'm really only qualified
> to guess; I looked through nsterm.m and changed a few suspected BOOL values
> and recompiled a few times but nothing had an effect on the hidden tab bar.
>
> Relatedly, tool-bar-mode is in the same boat; hidden in full screen, but
> probably shouldn't be.
Search in nsterm.m for "autohide", there are a couple of places where
hiding various bits and bobs is done, all related to fullscreen
afaict.
I'm not on a Mac just now or I'd try removing them all to see what it
does.
As I said, I suspect this change could be contentious, so we may want
to provide a variable to enable or disable it.
> > If you just remove it completely does it do anything different from
> > your patch?
>
> It appears that removing the code has the same effect as
> NSWindowTabbingModeAutomatic. I like minimalism so happy to just remove it.
👍
--
Alan Third
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-13 21:05 ` Alan Third
@ 2021-05-16 9:16 ` Paul W. Rankin via Emacs development discussions.
2021-05-26 19:56 ` Alan Third
0 siblings, 1 reply; 44+ messages in thread
From: Paul W. Rankin via Emacs development discussions. @ 2021-05-16 9:16 UTC (permalink / raw)
To: Alan Third; +Cc: emacs-devel
[-- Attachment #1: Type: text/plain, Size: 3097 bytes --]
On 2021-05-14 07:05, Alan Third wrote:
> On Thu, May 13, 2021 at 03:46:54PM +1000, Paul W. Rankin via Emacs
> development discussions. wrote:
>> On 2021-05-13 07:23, Alan Third wrote:
>> You're right and I can't find another macOS app with a tab bar that
>> behaves
>> the way Emacs.app does, so I gotta assume there is something somewhere
>> overriding the Cocoa window manager behaviour. But I'm really only
>> qualified
>> to guess; I looked through nsterm.m and changed a few suspected BOOL
>> values
>> and recompiled a few times but nothing had an effect on the hidden tab
>> bar.
>>
>> Relatedly, tool-bar-mode is in the same boat; hidden in full screen,
>> but
>> probably shouldn't be.
>
> Search in nsterm.m for "autohide", there are a couple of places where
> hiding various bits and bobs is done, all related to fullscreen
> afaict.
>
> I'm not on a Mac just now or I'd try removing them all to see what it
> does.
Looks like you're on the money!
I've attached two patches: 0001 is to remove the explicit setting of
NSWindowTabbingModeDisallowed; 0002 allows visibility of the toolbar and
tab bar in fullscreen (screenshot attached), but reliably causes a
segmentation fault with the following steps:
1. System Preferences > Dock > Prefer tabs... [Always]
2. $ emacs -Q
3. M-x toggle-frame-full
4. M-x make-frame
5. M-x delete-frame
Attached crash.log.
Interestingly, calling delete-other-frames does not trigger a crash and
when in windowed (non-fullscreen) a crash is only triggered with the
following:
1. System Preferences > Dock > Prefer tabs... [Always]
2. $ emacs -Q
3. M-x make-frame
4. M-x make-frame
5. click close background tab
6. wait for animation to finish
7. click close foreground tab
> As I said, I suspect this change could be contentious, so we may want
> to provide a variable to enable or disable it.
>
>> > If you just remove it completely does it do anything different from
>> > your patch?
>>
>> It appears that removing the code has the same effect as
>> NSWindowTabbingModeAutomatic. I like minimalism so happy to just
>> remove it.
>
> 👍
Let's view these as two separate but related changes, one to remove the
explicit setting of NSWindowTabbingModeDisallowed (patch 0001), the
other to fix the code that's preventing toolbar visibility when in
fullscreen (WIP patch 0002). I think the former is easy and not
contentious, whereas the latter -- obviously once it's not crashing --
may be another story.
There are three positions someone could take:
1. wants tabs in all macOS apps including Emacs.app
2. does not want tabs in any macOS apps including Emacs.app
3. wants tabs in all other macOS except for Emacs.app
Anyone in categories 1 and 2 will be covered by the option in System
Preferences. Given that all I think we're doing here is removing old
barrier code to have Emacs function with an OS's native window manager,
anyone in the third category would be putting the onus on themselves to
write code for additional functionality.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-src-nsterm.m-fix-window-tabbing-on-macOS.patch --]
[-- Type: text/x-diff; name=0001-src-nsterm.m-fix-window-tabbing-on-macOS.patch, Size: 1082 bytes --]
From 3efca3b2e5d58f66d272cf02cf8f14746f8b1031 Mon Sep 17 00:00:00 2001
From: "Paul W. Rankin" <pwr@bydasein.com>
Date: Sat, 8 May 2021 19:09:59 +1000
Subject: [PATCH 1/2] src/nsterm.m: fix window tabbing on macOS
* src/nsterm.m: remove NSWindowTabbingModeDisallowed to respect
system-wide preferences
---
src/nsterm.m | 8 --------
1 file changed, 8 deletions(-)
diff --git a/src/nsterm.m b/src/nsterm.m
index bb20886ab1..5fd4885801 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -7628,14 +7628,6 @@ - (instancetype) initFrameFromEmacs: (struct frame *)f
selector:@selector (viewDidResize:)
name:NSViewFrameDidChangeNotification object:nil];
- /* macOS Sierra automatically enables tabbed windows. We can't
- allow this to be enabled until it's available on a Free system.
- Currently it only happens by accident and is buggy anyway. */
-#ifdef NS_IMPL_COCOA
- if ([win respondsToSelector: @selector(setTabbingMode:)])
- [win setTabbingMode: NSWindowTabbingModeDisallowed];
-#endif
-
ns_window_num++;
return self;
}
--
2.30.2
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-WIP-src-nsterm.m-allow-toolbar-visibility-in-fullscr.patch --]
[-- Type: text/x-diff; name=0002-WIP-src-nsterm.m-allow-toolbar-visibility-in-fullscr.patch, Size: 959 bytes --]
From 940ef4c9117bf3f91aa945c87ae3123e5313a77a Mon Sep 17 00:00:00 2001
From: "Paul W. Rankin" <pwr@bydasein.com>
Date: Sun, 16 May 2021 18:46:12 +1000
Subject: [PATCH 2/2] WIP src/nsterm.m: allow toolbar visibility in fullscreen
on macOS
WIP DO NOT MERGE
---
src/nsterm.m | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/src/nsterm.m b/src/nsterm.m
index 5fd4885801..1f3d0524fe 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -7842,15 +7842,6 @@ - (void)windowDidMiniaturize: sender
}
}
-#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
-- (NSApplicationPresentationOptions)window:(NSWindow *)window
- willUseFullScreenPresentationOptions:
- (NSApplicationPresentationOptions)proposedOptions
-{
- return proposedOptions|NSApplicationPresentationAutoHideToolbar;
-}
-#endif
-
- (void)windowWillEnterFullScreen:(NSNotification *)notification
{
NSTRACE ("[EmacsView windowWillEnterFullScreen:]");
--
2.30.2
[-- Attachment #4: crash.log --]
[-- Type: text/plain, Size: 61264 bytes --]
Process: emacs-28.0.50 [60753]
Path: /usr/local/bin/emacs
Identifier: emacs-28.0.50
Version: 0
Code Type: X86-64 (Native)
Parent Process: oksh [1601]
Responsible: emacs-28.0.50 [60753]
User ID: 501
Date/Time: 2021-05-16 18:54:08.718 +1000
OS Version: Mac OS X 10.13.6 (17G14042)
Report Version: 12
Anonymous UUID: 7903AC13-7109-A28A-9473-DFFB47F7F7B4
Sleep/Wake UUID: 7EE0989F-76A6-49A0-B99D-8190A0402E1E
Time Awake Since Boot: 290000 seconds
Time Since Wake: 2500 seconds
System Integrity Protection: enabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGABRT)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000003
Exception Note: EXC_CORPSE_NOTIFY
VM Regions Near 0x3:
-->
__TEXT 0000000100a57000-0000000100cb4000 [ 2420K] r-x/rwx SM=COW /usr/local/bin/emacs-28.0.50
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff5cd2fb66 __pthread_kill + 10
1 libsystem_pthread.dylib 0x00007fff5cefa080 pthread_kill + 333
2 libsystem_c.dylib 0x00007fff5cc3d6fe raise + 26
3 emacs 0x0000000100b1cb49 terminate_due_to_signal + 169
4 emacs 0x0000000100b3a9c1 emacs_abort + 19
5 emacs 0x0000000100c34a10 ns_term_shutdown + 80
6 emacs 0x0000000100b1cd89 shut_down_emacs + 345
7 emacs 0x0000000100b1cb17 terminate_due_to_signal + 119
8 emacs 0x0000000100b3d77e handle_fatal_signal + 14
9 emacs 0x0000000100b3d801 deliver_thread_signal + 129
10 emacs 0x0000000100b3c1b9 deliver_fatal_thread_signal + 9
11 emacs 0x0000000100b3d8b8 handle_sigsegv + 168
12 libsystem_platform.dylib 0x00007fff5ceedf5a _sigtramp + 26
13 ??? 000000000000000000 0 + 0
14 emacs 0x0000000100a9e531 expose_frame + 113
15 emacs 0x0000000100c3e09c -[EmacsView drawRect:] + 124
16 com.apple.AppKit 0x00007fff32adef29 _NSViewDrawRect + 83
17 com.apple.AppKit 0x00007fff3237773c -[NSView _drawRect:clip:] + 1819
18 com.apple.AppKit 0x00007fff32376598 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 4844
19 com.apple.AppKit 0x00007fff32375ec5 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 3097
20 com.apple.AppKit 0x00007fff32375ec5 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 3097
21 com.apple.AppKit 0x00007fff32374ddb -[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 327
22 com.apple.AppKit 0x00007fff32ae04e0 -[NSView _oldDisplayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] + 2051
23 com.apple.AppKit 0x00007fff32373e5d -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] + 253
24 com.apple.AppKit 0x00007fff323700b4 -[NSView displayIfNeeded] + 1581
25 com.apple.AppKit 0x00007fff3236fa52 -[NSWindow displayIfNeeded] + 321
26 com.apple.AppKit 0x00007fff32b1060d ___NSWindowGetDisplayCycleObserver_block_invoke.5902 + 308
27 com.apple.AppKit 0x00007fff3236f55e __37+[NSDisplayCycle currentDisplayCycle]_block_invoke + 695
28 com.apple.QuartzCore 0x00007fff40027877 CA::Transaction::run_commit_handlers(CATransactionPhase) + 49
29 com.apple.QuartzCore 0x00007fff40026339 CA::Transaction::commit() + 171
30 com.apple.AppKit 0x00007fff32355c20 NSPerformVisuallyAtomicChange + 166
31 com.apple.AppKit 0x00007fff327a6cdb -[_NSFullScreenDetachedToolbarMenuBarCompanionController layout] + 106
32 com.apple.AppKit 0x00007fff32257cf7 -[NSThemeFrame _updateTitlebarContainerViewFrameIfNecessary] + 473
33 com.apple.AppKit 0x00007fff322744b0 -[NSThemeFrame _relayoutAuxiliaryViewsOfType:] + 183
34 com.apple.AppKit 0x00007fff322743e6 -[NSThemeFrame relayoutAuxiliaryViewsOfType:] + 27
35 com.apple.AppKit 0x00007fff3259f237 -[NSTitlebarViewController removeChildViewControllerAtIndex:] + 431
36 com.apple.AppKit 0x00007fff32a8dd1f -[NSWindowStackController _makeTabBarForWindow:visible:] + 338
37 com.apple.AppKit 0x00007fff32a91896 -[NSWindowStackController _removeSyncedItemAtIndex:] + 650
38 com.apple.AppKit 0x00007fff32a8f149 -[NSWindowStackController removeWindow:] + 252
39 com.apple.AppKit 0x00007fff3261897d -[NSWindow(NSWindowTabbing) _doTabbedWindowCleanupForOrderOut] + 97
40 com.apple.AppKit 0x00007fff32b02278 -[NSWindow _finishClosingWindow] + 73
41 com.apple.AppKit 0x00007fff324a1ed8 -[NSWindow _close] + 378
42 emacs 0x0000000100c43a0c ns_destroy_window + 140
43 emacs 0x0000000100a67537 delete_frame + 1671
44 emacs 0x0000000100badbcb funcall_subr + 267
45 emacs 0x0000000100bad188 Ffuncall + 840
46 emacs 0x0000000100ba5979 Ffuncall_interactively + 73
47 emacs 0x0000000100bad188 Ffuncall + 840
48 emacs 0x0000000100ba6e28 Fcall_interactively + 5272
49 emacs 0x0000000100badbeb funcall_subr + 299
50 emacs 0x0000000100bad188 Ffuncall + 840
51 emacs 0x0000000100bf2ba2 exec_byte_code + 1618
52 emacs 0x0000000100bad129 Ffuncall + 745
53 emacs 0x0000000100bf2ba2 exec_byte_code + 1618
54 emacs 0x0000000100bad129 Ffuncall + 745
55 emacs 0x0000000100ba5979 Ffuncall_interactively + 73
56 emacs 0x0000000100bad188 Ffuncall + 840
57 emacs 0x0000000100baccdf Fapply + 607
58 emacs 0x0000000100ba5e4e Fcall_interactively + 1214
59 emacs 0x0000000100badbeb funcall_subr + 299
60 emacs 0x0000000100bad188 Ffuncall + 840
61 emacs 0x0000000100bf2ba2 exec_byte_code + 1618
62 emacs 0x0000000100bad129 Ffuncall + 745
63 emacs 0x0000000100bad81c call1 + 44
64 emacs 0x0000000100b211c7 command_loop_1 + 1959
65 emacs 0x0000000100bab069 internal_condition_case + 281
66 emacs 0x0000000100b315b0 command_loop_2 + 48
67 emacs 0x0000000100baa53a internal_catch + 362
68 emacs 0x0000000100b1fefe command_loop + 158
69 emacs 0x0000000100b1fe13 recursive_edit_1 + 115
70 emacs 0x0000000100b200bb Frecursive_edit + 347
71 emacs 0x0000000100b1eb8c main + 7564
72 libdyld.dylib 0x00007fff5cbdf015 start + 1
Thread 1:
0 libsystem_kernel.dylib 0x00007fff5cd3028a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff5cef7009 _pthread_wqthread + 1035
2 libsystem_pthread.dylib 0x00007fff5cef6be9 start_wqthread + 13
Thread 2:
0 libsystem_kernel.dylib 0x00007fff5cd3028a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff5cef720e _pthread_wqthread + 1552
2 libsystem_pthread.dylib 0x00007fff5cef6be9 start_wqthread + 13
Thread 3:
0 libsystem_kernel.dylib 0x00007fff5cd3028a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff5cef720e _pthread_wqthread + 1552
2 libsystem_pthread.dylib 0x00007fff5cef6be9 start_wqthread + 13
Thread 4:
0 libsystem_kernel.dylib 0x00007fff5cd3028a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff5cef720e _pthread_wqthread + 1552
2 libsystem_pthread.dylib 0x00007fff5cef6be9 start_wqthread + 13
Thread 5:
0 libsystem_kernel.dylib 0x00007fff5cd2fcf2 __select + 10
1 emacs 0x0000000100c36028 -[EmacsApp fd_handler:] + 264
2 com.apple.Foundation 0x00007fff36da79d8 __NSThread__start__ + 1197
3 libsystem_pthread.dylib 0x00007fff5cef7661 _pthread_body + 340
4 libsystem_pthread.dylib 0x00007fff5cef750d _pthread_start + 377
5 libsystem_pthread.dylib 0x00007fff5cef6bf9 thread_start + 13
Thread 6:: com.apple.NSEventThread
0 libsystem_kernel.dylib 0x00007fff5cd261fa mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff5cd25714 mach_msg + 60
2 com.apple.CoreFoundation 0x00007fff34c9a405 __CFRunLoopServiceMachPort + 341
3 com.apple.CoreFoundation 0x00007fff34c99757 __CFRunLoopRun + 1783
4 com.apple.CoreFoundation 0x00007fff34c98dd3 CFRunLoopRunSpecific + 483
5 com.apple.AppKit 0x00007fff3236dfc4 _NSEventThread + 184
6 libsystem_pthread.dylib 0x00007fff5cef7661 _pthread_body + 340
7 libsystem_pthread.dylib 0x00007fff5cef750d _pthread_start + 377
8 libsystem_pthread.dylib 0x00007fff5cef6bf9 thread_start + 13
Thread 7:
0 libsystem_kernel.dylib 0x00007fff5cd3028a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff5cef720e _pthread_wqthread + 1552
2 libsystem_pthread.dylib 0x00007fff5cef6be9 start_wqthread + 13
Thread 8:
0 libsystem_kernel.dylib 0x00007fff5cd3028a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff5cef7009 _pthread_wqthread + 1035
2 libsystem_pthread.dylib 0x00007fff5cef6be9 start_wqthread + 13
Thread 9:
0 libsystem_kernel.dylib 0x00007fff5cd3028a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff5cef7009 _pthread_wqthread + 1035
2 libsystem_pthread.dylib 0x00007fff5cef6be9 start_wqthread + 13
Thread 10:
0 libsystem_kernel.dylib 0x00007fff5cd3028a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff5cef720e _pthread_wqthread + 1552
2 libsystem_pthread.dylib 0x00007fff5cef6be9 start_wqthread + 13
Thread 0 crashed with X86 Thread State (64-bit):
rax: 0x0000000000000000 rbx: 0x00007fff95622380 rcx: 0x00000001010b27d8 rdx: 0x0000000000000000
rdi: 0x0000000000000307 rsi: 0x0000000000000006 rbp: 0x00000001010b2810 rsp: 0x00000001010b27d8
r8: 0x0000000000000006 r9: 0x00007fa44ae6e380 r10: 0x0000000000000000 r11: 0x0000000000000287
r12: 0x0000000000000307 r13: 0x000000000000031e r14: 0x0000000000000006 r15: 0x000000000000002d
rip: 0x00007fff5cd2fb66 rfl: 0x0000000000000286 cr2: 0x00000001010b1fe0
Logical CPU: 0
Error Code: 0x02000148
Trap Number: 133
Binary Images:
0x100a57000 - 0x100cb3fff +emacs (0) <2053FCCB-0DF9-3E07-9F5C-0DD0567E4D0D> /usr/local/bin/emacs
0x1011e5000 - 0x101207ff7 +libpng16.16.dylib (0) <0A567A4D-E417-3593-8FEE-00C7C459F475> /opt/pkg/*/libpng16.16.dylib
0x101215000 - 0x101224fff +libz.1.dylib (0) <4B5BA086-02C8-3484-A036-599ADCD6036D> /opt/pkg/*/libz.1.dylib
0x10122e000 - 0x10130dff3 +libxml2.2.dylib (0) <99D6DF45-151C-30F1-9E6D-A00CEE1392CC> /opt/pkg/*/libxml2.2.dylib
0x101345000 - 0x101377ffb +libncurses.6.dylib (0) <2F95709A-65E3-37CF-B4CA-36F22D768E14> /opt/pkg/*/libncurses.6.dylib
0x101387000 - 0x101505ffb +libgnutls.30.dylib (0) <9F8A555C-5B67-31DC-8673-5EF57DAA10CF> /opt/pkg/*/libgnutls.30.dylib
0x101554000 - 0x10158bff7 +liblcms2.2.dylib (0) <91D2AE2A-0514-3FAE-BF9A-47A0A0BD7B9D> /opt/pkg/*/liblcms2.2.dylib
0x10159e000 - 0x1015b8ff7 +liblzma.5.dylib (0) <01D95D3E-2C55-366E-BD32-CF2D1869D287> /opt/pkg/*/liblzma.5.dylib
0x1015be000 - 0x101697ffb +libiconv.2.dylib (0) <A999F90B-FA78-3AB3-9E18-6C3F0195B633> /opt/pkg/*/libiconv.2.dylib
0x1016a6000 - 0x10174dfff +libp11-kit.0.dylib (0) <D20D8AF1-E058-31E8-9E08-BBF4176707A1> /opt/pkg/*/libp11-kit.0.dylib
0x101807000 - 0x10180cfd7 +libffi.7.dylib (0) <48193131-4C3C-3EAF-AC9B-703CD4CD9FDF> /opt/pkg/*/libffi.7.dylib
0x101816000 - 0x101977ff3 +libunistring.2.dylib (0) <0AE819A3-406D-33BB-AD88-85F89675B5A0> /opt/pkg/*/libunistring.2.dylib
0x10198c000 - 0x101997ff3 +libtasn1.6.dylib (0) <F1FEC854-A1FF-3D6C-9CFC-177E0870817B> /opt/pkg/*/libtasn1.6.dylib
0x1019a2000 - 0x1019d7fff +libhogweed.6.dylib (0) <BBB8A796-973F-37D8-A1EA-49AFFD77CD14> /opt/pkg/*/libhogweed.6.dylib
0x1019f0000 - 0x101a1efff +libnettle.8.dylib (0) <C531DFE9-6D20-3CF1-AF59-04A5422AF611> /opt/pkg/*/libnettle.8.dylib
0x101a44000 - 0x101abafc7 +libgmp.10.dylib (0) <C990307A-D379-346E-9FF6-AC69E58C3502> /opt/pkg/*/libgmp.10.dylib
0x101ad0000 - 0x101ad8fff +libintl.8.dylib (0) <9AD349A1-DE4F-3EAE-B618-D90DF87424EA> /opt/pkg/*/libintl.8.dylib
0x10a9c9000 - 0x10aa13adf dyld (551.5) <CB9BFB56-4511-36F1-A546-891FF770C01C> /usr/lib/dyld
0x7fff2d1c7000 - 0x7fff2d515ff7 com.apple.RawCamera.bundle (8.05.0 - 1017.4.1) <937CBA8D-60C8-3739-8DFF-1C737D6339EF> /System/Library/CoreServices/RawCamera.bundle/Contents/MacOS/RawCamera
0x7fff2eb24000 - 0x7fff2eba9ff7 com.apple.driver.AppleIntelHD5000GraphicsMTLDriver (10.36.32 - 10.3.6) <3282B3D0-4B36-3146-94E3-9DF8229105AF> /System/Library/Extensions/AppleIntelHD5000GraphicsMTLDriver.bundle/Contents/MacOS/AppleIntelHD5000GraphicsMTLDriver
0x7fff31189000 - 0x7fff31189fff com.apple.Accelerate (1.11 - Accelerate 1.11) <8632A9C5-19EA-3FD7-A44D-80765CC9C540> /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
0x7fff3118a000 - 0x7fff311a0fef libCGInterfaces.dylib (417.2) <46DFCDA4-0470-3CDB-9875-0375D35FB9A3> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/Libraries/libCGInterfaces.dylib
0x7fff311a1000 - 0x7fff3169ffc3 com.apple.vImage (8.1 - ???) <A243A7EF-0C8E-3A9A-AA38-44AFD7507F00> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage
0x7fff316a0000 - 0x7fff317fafe3 libBLAS.dylib (1211.50.2) <62C659EB-3E32-3B5F-83BF-79F5DF30D5CE> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
0x7fff317fb000 - 0x7fff31829fef libBNNS.dylib (38.1) <7BAEFDCA-3227-3E07-80D8-59B6370B89C6> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBNNS.dylib
0x7fff3182a000 - 0x7fff31be9ff7 libLAPACK.dylib (1211.50.2) <40ADBA5F-8B2D-30AC-A7AD-7B17C37EE52D> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
0x7fff31bea000 - 0x7fff31bffff7 libLinearAlgebra.dylib (1211.50.2) <E8E0B7FD-A0B7-31E5-AF01-81781F71EBBE> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib
0x7fff31c00000 - 0x7fff31c05ff3 libQuadrature.dylib (3) <E936BDAF-8492-34D9-8C5C-AFBFCDAD8318> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libQuadrature.dylib
0x7fff31c06000 - 0x7fff31c86fff libSparse.dylib (79.50.2) <0DC25CDD-F8C1-3D6E-B472-8B060708424F> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparse.dylib
0x7fff31c87000 - 0x7fff31c9afff libSparseBLAS.dylib (1211.50.2) <722573CC-31CC-34B2-9032-E4F652A9CCFE> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparseBLAS.dylib
0x7fff31c9b000 - 0x7fff31e48fc3 libvDSP.dylib (622.50.5) <40690941-CF89-3F90-A0AC-A4D200744A5D> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib
0x7fff31e49000 - 0x7fff31efafff libvMisc.dylib (622.50.5) <BA2532DF-2D68-3DD0-9B59-D434BF702AA4> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib
0x7fff31efb000 - 0x7fff31efbfff com.apple.Accelerate.vecLib (3.11 - vecLib 3.11) <54FF3B43-E66C-3F36-B34B-A2B3B0A36502> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
0x7fff321ef000 - 0x7fff3304dfff com.apple.AppKit (6.9 - 1561.61.100) <4E6EA3FA-8C2C-3B21-BFF9-6F8C458B7BE1> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
0x7fff3309f000 - 0x7fff3309ffff com.apple.ApplicationServices (48 - 50) <2B5B76E7-0AB2-31F9-BE58-B963BF1EC2E8> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
0x7fff330a0000 - 0x7fff33106fff com.apple.ApplicationServices.ATS (377 - 445.5) <60176327-F757-308E-B61A-D43394E87CC5> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS
0x7fff3319f000 - 0x7fff332c1ff7 libFontParser.dylib (222.1.9) <FFF2AC1A-D4D2-3AD3-BFF2-F3649ECB02AC> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib
0x7fff332c2000 - 0x7fff3330dff7 libFontRegistry.dylib (221.6) <30C6D1DE-C0E3-3447-A0EF-829443D95F0E> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib
0x7fff333b2000 - 0x7fff333e5ff7 libTrueTypeScaler.dylib (222.1.9) <BF00CE2B-6BC5-3337-8350-A1BAB88A3CE0> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libTrueTypeScaler.dylib
0x7fff3344f000 - 0x7fff33453ff3 com.apple.ColorSyncLegacy (4.13.0 - 1) <04764FB2-22D8-36F0-9647-2D21562E28D5> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSyncLegacy.framework/Versions/A/ColorSyncLegacy
0x7fff334f3000 - 0x7fff33545ffb com.apple.HIServices (1.22 - 625) <3C059A55-1409-373E-BF0B-C3299AFABDCF> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices
0x7fff33546000 - 0x7fff33554fff com.apple.LangAnalysis (1.7.0 - 1.7.0) <8BB267F4-D5AA-3D35-8269-1A3CEA054ACD> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis
0x7fff33555000 - 0x7fff335a1fff com.apple.print.framework.PrintCore (13.4 - 503.2) <2EA98448-9D6A-3912-9933-F7703CB01B6E> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore
0x7fff335a2000 - 0x7fff335dcfff com.apple.QD (3.12 - 404.2) <525E9518-DFF3-3D8D-BD48-E0D63EEDBD16> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD
0x7fff335dd000 - 0x7fff335e9fff com.apple.speech.synthesis.framework (7.8.1 - 7.8.1) <CD09019C-569B-3A56-B84C-26F2A6223455> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis
0x7fff335ea000 - 0x7fff33878ff7 com.apple.audio.toolbox.AudioToolbox (1.14 - 1.14) <C7BE1645-BE23-3427-8650-1CEFDAF86710> /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
0x7fff3387a000 - 0x7fff3387afff com.apple.audio.units.AudioUnit (1.14 - 1.14) <294802B9-E24D-34EB-973F-6D2B8E2E86CB> /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit
0x7fff33b9d000 - 0x7fff33f3afff com.apple.CFNetwork (902.6 - 902.6) <46168F79-CCFA-349A-8508-B8CBCE27D440> /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
0x7fff33f4f000 - 0x7fff33f4ffff com.apple.Carbon (158 - 158) <F8B370D9-2103-3276-821D-ACC756167F86> /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
0x7fff33f50000 - 0x7fff33f53ffb com.apple.CommonPanels (1.2.6 - 98) <075486A5-8E39-3F72-BED7-752517379C55> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CommonPanels.framework/Versions/A/CommonPanels
0x7fff33f54000 - 0x7fff34259fff com.apple.HIToolbox (2.1.1 - 911.10) <8D2EBE85-9AF0-38BC-ACD3-1ED978643907> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox
0x7fff3425a000 - 0x7fff3425dffb com.apple.help (1.3.8 - 66) <7F210C1C-D7D3-3C97-A2E4-D3CC35F91807> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Help.framework/Versions/A/Help
0x7fff3425e000 - 0x7fff34263fff com.apple.ImageCapture (9.0 - 9.0) <3993E094-AB86-3B22-BC18-4550F23854FF> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/ImageCapture.framework/Versions/A/ImageCapture
0x7fff34264000 - 0x7fff342f9ffb com.apple.ink.framework (10.9 - 221) <83976BB8-A423-3AA5-8221-6EB04B3DEF0A> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink
0x7fff342fa000 - 0x7fff34314ff7 com.apple.openscripting (1.7 - 174) <C282DFBB-4BF2-3222-87E0-0B560D5B4B2F> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/OpenScripting.framework/Versions/A/OpenScripting
0x7fff34335000 - 0x7fff34336fff com.apple.print.framework.Print (12 - 267) <DFC4CE94-F6E6-3DFA-AB88-A13E4C5A7701> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print
0x7fff34337000 - 0x7fff34339ff7 com.apple.securityhi (9.0 - 55006) <1AB48F32-D1CB-3657-A30C-40A7E718A71D> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.framework/Versions/A/SecurityHI
0x7fff3433a000 - 0x7fff34340fff com.apple.speech.recognition.framework (6.0.3 - 6.0.3) <2A07BB54-438B-34C9-8061-45403E197ACA> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition
0x7fff3446f000 - 0x7fff34528fff com.apple.ColorSync (4.13.0 - 3325) <EAD2D314-E810-33FB-B105-BD30ABB912AD> /System/Library/Frameworks/ColorSync.framework/Versions/A/ColorSync
0x7fff346b5000 - 0x7fff34748ff7 com.apple.audio.CoreAudio (4.3.0 - 4.3.0) <AF2B41CC-DD7A-34EB-A842-00DC3B8F2E9F> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
0x7fff347af000 - 0x7fff347d8ffb com.apple.CoreBluetooth (1.0 - 1) <ED48840B-A80A-32C1-8E4B-DEB7A7CD3C1A> /System/Library/Frameworks/CoreBluetooth.framework/Versions/A/CoreBluetooth
0x7fff347d9000 - 0x7fff34b2ffef com.apple.CoreData (120 - 851) <7361F2EA-2B7F-3259-909F-287BEB443781> /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData
0x7fff34b30000 - 0x7fff34c13fff com.apple.CoreDisplay (99.14 - 99.14) <9B2B211D-EC0A-3569-BB37-887768CD6105> /System/Library/Frameworks/CoreDisplay.framework/Versions/A/CoreDisplay
0x7fff34c14000 - 0x7fff350b7fe7 com.apple.CoreFoundation (6.9 - 1455.300) <CB44B892-64CD-3E32-A518-6D40B1A7033F> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
0x7fff350b9000 - 0x7fff356c9fef com.apple.CoreGraphics (2.0 - 1161.21.5) <6451A561-3A83-37FB-AAA7-3FCE6D95C34C> /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
0x7fff356cb000 - 0x7fff359bafff com.apple.CoreImage (13.0.0 - 579.5) <B2B60A80-2E10-3EDF-920C-94288E55AE25> /System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage
0x7fff35c49000 - 0x7fff35d3fffb com.apple.CoreMedia (1.0 - 2276.80.4) <67942D16-3658-37FC-B61C-8ED3D4BFBFB9> /System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia
0x7fff35d8f000 - 0x7fff35d8ffff com.apple.CoreServices (822.37 - 822.37) <CE816EF2-2B89-3F54-A5C6-D3080B1EFB00> /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
0x7fff35d90000 - 0x7fff35e04ffb com.apple.AE (735.2 - 735.2) <0938A72B-6A4A-36F1-95B3-5EF6B915CEEE> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE
0x7fff35e05000 - 0x7fff360dcfff com.apple.CoreServices.CarbonCore (1178.4.2 - 1178.4.2) <4692EE3A-11FE-31FD-AF5B-30F892E87A05> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
0x7fff360dd000 - 0x7fff36111fff com.apple.DictionaryServices (1.2 - 284.2) <F1F3EFAE-2562-394D-8FB3-BE22F16CD75A> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices
0x7fff36112000 - 0x7fff3611affb com.apple.CoreServices.FSEvents (1239.50.2 - 1239.50.2) <FE465894-4235-3CE2-9A97-32D6C6C7D9AD> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents
0x7fff3611b000 - 0x7fff362d9ff7 com.apple.LaunchServices (822.37 - 822.37) <0DB4679F-AE39-3BF3-B39B-549322E355AF> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
0x7fff362da000 - 0x7fff3638afff com.apple.Metadata (10.7.0 - 1191.8) <F3BD3FD7-208A-31E9-85CD-6E607DDAFEF0> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
0x7fff3638b000 - 0x7fff363ebfff com.apple.CoreServices.OSServices (822.37 - 822.37) <564DDE70-0250-346B-B5CC-4AFAC11A7373> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
0x7fff363ec000 - 0x7fff3645afff com.apple.SearchKit (1.4.0 - 1.4.0) <97DD9E7D-3567-382B-ACF7-CE0E4FE78D36> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit
0x7fff3645b000 - 0x7fff3647fffb com.apple.coreservices.SharedFileList (71.21 - 71.21) <88991F51-0A75-34FF-8C91-ED0F3C270B7B> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList
0x7fff36720000 - 0x7fff36870fff com.apple.CoreText (352.0 - 578.23) <10DAF601-85A8-3F9C-8B0B-69DC16B95E47> /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText
0x7fff36871000 - 0x7fff368abfff com.apple.CoreVideo (1.8 - 0.0) <0DD4FFDF-E1F1-39D1-8246-5D0D9869F1EA> /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
0x7fff368ac000 - 0x7fff36937ff3 com.apple.framework.CoreWLAN (13.0 - 1350.2) <EC145FBD-F638-38B8-BE94-F892A2F02550> /System/Library/Frameworks/CoreWLAN.framework/Versions/A/CoreWLAN
0x7fff36bb2000 - 0x7fff36bb7fff com.apple.DiskArbitration (2.7 - 2.7) <51DC4AED-6F0C-321F-93E3-20EA4341B768> /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
0x7fff36d78000 - 0x7fff3713fffb com.apple.Foundation (6.9 - 1455.300) <0479E072-1DD0-3881-A9A2-EDAD3EE58C23> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
0x7fff371b0000 - 0x7fff371e0ff3 com.apple.GSS (4.0 - 2.0) <7E83A21E-4F90-38F3-9FD3-FAC0E0143243> /System/Library/Frameworks/GSS.framework/Versions/A/GSS
0x7fff372f2000 - 0x7fff373f6ffb com.apple.Bluetooth (6.0.7 - 6.0.7f22) <08E33A6B-16A7-3E4E-82C9-E1E5A84300D0> /System/Library/Frameworks/IOBluetooth.framework/Versions/A/IOBluetooth
0x7fff37456000 - 0x7fff374f1fff com.apple.framework.IOKit (2.0.2 - 1445.71.6) <4B5C715C-6A49-366B-9080-ABADE6A3B3BD> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
0x7fff374f3000 - 0x7fff374fafff com.apple.IOSurface (211.15 - 211.15) <08DA3232-805F-304B-80DD-C86B49CC4AAD> /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface
0x7fff37551000 - 0x7fff376ccfe7 com.apple.ImageIO.framework (3.3.0 - 1739.3.8) <58BD6865-E629-3283-859B-82C4C3A5FF66> /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
0x7fff376cd000 - 0x7fff376d1ffb libGIF.dylib (1739.3.8) <E3446976-10BF-3B75-9A11-32893368D748> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib
0x7fff376d2000 - 0x7fff377b9fe7 libJP2.dylib (1739.3.8) <4B440B09-1542-304C-8BE5-EB0F9370046C> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib
0x7fff377ba000 - 0x7fff377ddff7 libJPEG.dylib (1739.3.8) <F6BCF3DA-6F0B-35A8-982C-BEFD2DD6DBFE> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib
0x7fff37acc000 - 0x7fff37af2feb libPng.dylib (1739.3.8) <25C5D4B1-3715-3DF5-BE4B-C71089ADBBFE> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib
0x7fff37af3000 - 0x7fff37af5ffb libRadiance.dylib (1739.3.8) <5134034F-A7BC-3749-A141-92BC89579AF6> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib
0x7fff37af6000 - 0x7fff37b44fe7 libTIFF.dylib (1739.3.8) <91F6CDBD-C4A0-3614-81DC-B9A9E3838CF0> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
0x7fff389fe000 - 0x7fff38a17ff7 com.apple.Kerberos (3.0 - 1) <C7CDC1E0-011B-3220-847D-1AC3DA6D5522> /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos
0x7fff38cd6000 - 0x7fff38cddfff com.apple.MediaAccessibility (1.0 - 114) <00F21329-1163-3283-A882-A5DD7A12D353> /System/Library/Frameworks/MediaAccessibility.framework/Versions/A/MediaAccessibility
0x7fff38d8d000 - 0x7fff393f7ff7 com.apple.MediaToolbox (1.0 - 2276.80.4) <FA444376-E5AF-36AB-BE1D-76ECE4D72049> /System/Library/Frameworks/MediaToolbox.framework/Versions/A/MediaToolbox
0x7fff393f9000 - 0x7fff3947afff com.apple.Metal (125.30 - 125.30) <67EDA241-80B1-3C67-BB2B-FF83E49FEF8D> /System/Library/Frameworks/Metal.framework/Versions/A/Metal
0x7fff39497000 - 0x7fff394b2fff com.apple.MetalPerformanceShaders.MPSCore (1.0 - 1) <8DED0F0C-4A10-36A3-A3E2-7D3CF429ACE1> /System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSCore.framework/Versions/A/MPSCore
0x7fff394b3000 - 0x7fff39522fef com.apple.MetalPerformanceShaders.MPSImage (1.0 - 1) <48F4A97F-143A-3918-AB92-6733E258E25A> /System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSImage.framework/Versions/A/MPSImage
0x7fff39523000 - 0x7fff39547fff com.apple.MetalPerformanceShaders.MPSMatrix (1.0 - 1) <CD443ADC-07FE-3603-B0C9-60C2AF3616FF> /System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSMatrix.framework/Versions/A/MPSMatrix
0x7fff39548000 - 0x7fff3962fff7 com.apple.MetalPerformanceShaders.MPSNeuralNetwork (1.0 - 1) <40EB0BAE-6DDE-3334-A28C-529AE4C6716A> /System/Library/Frameworks/MetalPerformanceShaders.framework/Frameworks/MPSNeuralNetwork.framework/Versions/A/MPSNeuralNetwork
0x7fff39630000 - 0x7fff39630ff7 com.apple.MetalPerformanceShaders.MetalPerformanceShaders (1.0 - 1) <A111E862-43E5-3247-9E98-0A40DC34AD9B> /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/MetalPerformanceShaders
0x7fff3a62f000 - 0x7fff3a63bffb com.apple.NetFS (6.0 - 4.0) <02E09301-324F-3542-875D-B87B144635C8> /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS
0x7fff3d42d000 - 0x7fff3d487ff7 com.apple.opencl (2.8.24 - 2.8.24) <429B5283-276D-372D-BB0E-EEBE1408C393> /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL
0x7fff3d488000 - 0x7fff3d4a4ffb com.apple.CFOpenDirectory (10.13 - 207.50.1) <E9AD4934-5DE3-3DD0-9D7B-9D288D829F15> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory
0x7fff3d4a5000 - 0x7fff3d4b0fff com.apple.OpenDirectory (10.13 - 207.50.1) <8B54C486-14C9-3FEF-97B8-F4D6F59F75CF> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory
0x7fff3e62f000 - 0x7fff3e631fff libCVMSPluginSupport.dylib (16.7.4) <3E26CF2B-5074-3321-AD9E-6A667D61AA35> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib
0x7fff3e632000 - 0x7fff3e637ffb libCoreFSCache.dylib (162.12) <D12E1D0E-C0E5-329E-99B4-AB152C9ABBE3> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreFSCache.dylib
0x7fff3e638000 - 0x7fff3e63cfff libCoreVMClient.dylib (162.12) <39951906-8566-3F9D-9EA8-EBD6084DCF73> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib
0x7fff3e63d000 - 0x7fff3e646ff3 libGFXShared.dylib (16.7.4) <81A7875B-103D-3C82-B25C-DE24E57E5C8B> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib
0x7fff3e647000 - 0x7fff3e652fff libGL.dylib (16.7.4) <2BB333D3-5C61-33DF-8545-06DF2D08B83D> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
0x7fff3e653000 - 0x7fff3e68efe7 libGLImage.dylib (16.7.4) <4DA003CE-0B74-3FE4-808C-B2FBCE517EB4> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib
0x7fff3e7fd000 - 0x7fff3e83bffb libGLU.dylib (16.7.4) <BCB09CD8-EB0E-38FA-8B5A-9E29532EE364> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib
0x7fff3f1b3000 - 0x7fff3f1c2ff3 com.apple.opengl (16.7.4 - 16.7.4) <77A788F3-8F0C-305C-AEB9-FF258676C599> /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
0x7fff40016000 - 0x7fff40262ff7 com.apple.QuartzCore (1.11 - 584.64.2) <FD9A3180-479E-3DAC-9CF0-0D214C7E46A7> /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
0x7fff40a9a000 - 0x7fff40dc5fff com.apple.security (7.0 - 58286.70.19) <E118FC23-2E20-3999-826B-58488049A277> /System/Library/Frameworks/Security.framework/Versions/A/Security
0x7fff40dc6000 - 0x7fff40e52ff7 com.apple.securityfoundation (6.0 - 55185.50.5) <3D9AD4EF-439C-3AE1-9332-AD291CF96C64> /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation
0x7fff40e84000 - 0x7fff40e88ffb com.apple.xpc.ServiceManagement (1.0 - 1) <3FCAF325-40C8-3148-9E49-E555F95B2946> /System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement
0x7fff4122d000 - 0x7fff4129dff3 com.apple.SystemConfiguration (1.17 - 1.17) <41D509AB-AED3-30FF-BB00-615BB5A8AC00> /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
0x7fff41452000 - 0x7fff417cdfff com.apple.VideoToolbox (1.0 - 2276.80.4) <1C94A509-0372-3B58-94BC-4488C042BD79> /System/Library/Frameworks/VideoToolbox.framework/Versions/A/VideoToolbox
0x7fff4419a000 - 0x7fff4422dff3 com.apple.APFS (1.0 - 1) <70034B32-9347-30FB-9DDE-95061F686613> /System/Library/PrivateFrameworks/APFS.framework/Versions/A/APFS
0x7fff44e5a000 - 0x7fff44e82fff com.apple.framework.Apple80211 (13.0 - 1370.4) <C296CDDB-0A79-3D6B-898A-0FBA1892F5AC> /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Apple80211
0x7fff44e84000 - 0x7fff44e93fef com.apple.AppleFSCompression (96.60.1 - 1.0) <CBE1A092-CE90-36B9-AAA6-0BE2E7921504> /System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression
0x7fff44f92000 - 0x7fff44f9dff7 com.apple.AppleIDAuthSupport (1.0 - 1) <924EA55F-1C87-347F-9212-F79EA2B2C84C> /System/Library/PrivateFrameworks/AppleIDAuthSupport.framework/Versions/A/AppleIDAuthSupport
0x7fff44fd7000 - 0x7fff4501fff3 com.apple.AppleJPEG (1.0 - 1) <15558577-08E3-3087-86A9-8B6247978BCE> /System/Library/PrivateFrameworks/AppleJPEG.framework/Versions/A/AppleJPEG
0x7fff4505a000 - 0x7fff45082fff com.apple.applesauce (1.0 - ???) <9CE4CAE2-30B9-3DF6-9BC0-33D532D7B937> /System/Library/PrivateFrameworks/AppleSauce.framework/Versions/A/AppleSauce
0x7fff4514f000 - 0x7fff4519fff7 com.apple.AppleVAFramework (5.0.41 - 5.0.41) <C82921AA-1537-3736-BC16-5CABB3EF0100> /System/Library/PrivateFrameworks/AppleVA.framework/Versions/A/AppleVA
0x7fff454d5000 - 0x7fff4576effb com.apple.AuthKit (1.0 - 1) <C3087797-E472-300E-8B4A-448857ACE8E7> /System/Library/PrivateFrameworks/AuthKit.framework/Versions/A/AuthKit
0x7fff458a5000 - 0x7fff458acff7 com.apple.coreservices.BackgroundTaskManagement (1.0 - 57.1) <B2A1EEDF-490A-38E2-A896-41057C0417BF> /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/BackgroundTaskManagement
0x7fff458ad000 - 0x7fff45934ff7 com.apple.backup.framework (1.9.6 - 1.9.6) <0A54D219-E71B-3BC6-8DFC-11ED47E431BE> /System/Library/PrivateFrameworks/Backup.framework/Versions/A/Backup
0x7fff472f0000 - 0x7fff472f9ff3 com.apple.CommonAuth (4.0 - 2.0) <21AF4AC2-E650-35F9-AB33-3EBA2769FBC0> /System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth
0x7fff47635000 - 0x7fff47a3dfff com.apple.CoreAUC (259.0.0 - 259.0.0) <EF95ED0E-F4F1-3969-89BB-CE8CDD74C29F> /System/Library/PrivateFrameworks/CoreAUC.framework/Versions/A/CoreAUC
0x7fff47a3e000 - 0x7fff47a6eff7 com.apple.CoreAVCHD (5.9.0 - 5900.4.1) <6AC79B1F-0A12-34A4-BC0D-5A6A65ABABE0> /System/Library/PrivateFrameworks/CoreAVCHD.framework/Versions/A/CoreAVCHD
0x7fff47e0d000 - 0x7fff47e1dff7 com.apple.CoreEmoji (1.0 - 69.3) <DCCF04BB-DA33-3DC0-B7C2-1D34870C0C0A> /System/Library/PrivateFrameworks/CoreEmoji.framework/Versions/A/CoreEmoji
0x7fff485b1000 - 0x7fff485b9ff3 com.apple.CorePhoneNumbers (1.0 - 1) <3B388768-5CDB-341A-BCE2-4047EAD009EA> /System/Library/PrivateFrameworks/CorePhoneNumbers.framework/Versions/A/CorePhoneNumbers
0x7fff48744000 - 0x7fff48775ff3 com.apple.CoreServicesInternal (309.1 - 309.1) <9A9DE5A0-3912-3311-A351-2B7B5C35D1F0> /System/Library/PrivateFrameworks/CoreServicesInternal.framework/Versions/A/CoreServicesInternal
0x7fff48aef000 - 0x7fff48b80fff com.apple.CoreSymbolication (9.3 - 64026.2) <30652FA5-C731-3A22-864D-DF6D9C77CD4C> /System/Library/PrivateFrameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication
0x7fff48c03000 - 0x7fff48d38fff com.apple.coreui (2.1 - 494.1) <5B4F3E9C-A4EF-3908-A035-59B8631C3685> /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI
0x7fff48d39000 - 0x7fff48e6afff com.apple.CoreUtils (5.6 - 560.11) <2C5A0610-1F08-3603-8692-EE03E62EE622> /System/Library/PrivateFrameworks/CoreUtils.framework/Versions/A/CoreUtils
0x7fff48ebf000 - 0x7fff48f23fff com.apple.framework.CoreWiFi (13.0 - 1350.2) <500CC54F-A6CB-3D36-9BB1-C9C9F6A6E414> /System/Library/PrivateFrameworks/CoreWiFi.framework/Versions/A/CoreWiFi
0x7fff48f24000 - 0x7fff48f34ff7 com.apple.CrashReporterSupport (10.13 - 1) <1ADEC140-4838-3976-A14B-6268C5251481> /System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport
0x7fff48fb3000 - 0x7fff48fc2ff7 com.apple.framework.DFRFoundation (1.0 - 191.7) <F7AB1B29-A4B0-3938-AFDC-DAA204929404> /System/Library/PrivateFrameworks/DFRFoundation.framework/Versions/A/DFRFoundation
0x7fff48fc5000 - 0x7fff48fc9ffb com.apple.DSExternalDisplay (3.1 - 380) <13AA3B17-E649-3B7B-B09D-9AE7C4A60887> /System/Library/PrivateFrameworks/DSExternalDisplay.framework/Versions/A/DSExternalDisplay
0x7fff4904b000 - 0x7fff490c1fff com.apple.datadetectorscore (7.0 - 590.3) <E645FBF0-B47D-3394-84DF-792B85E94CB3> /System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore
0x7fff4910f000 - 0x7fff4914fff7 com.apple.DebugSymbols (181.0 - 181.0) <702DB951-F5A6-3155-9D84-BBA9A4B4E1BD> /System/Library/PrivateFrameworks/DebugSymbols.framework/Versions/A/DebugSymbols
0x7fff49150000 - 0x7fff4927ffff com.apple.desktopservices (1.12.5 - 1.12.5) <96BB57E2-3359-3920-AA7C-BF03C2225485> /System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv
0x7fff4a094000 - 0x7fff4a4c2fff com.apple.vision.FaceCore (3.3.2 - 3.3.2) <06065DA3-4091-3682-A308-BF3F2E3E4AF8> /System/Library/PrivateFrameworks/FaceCore.framework/Versions/A/FaceCore
0x7fff4c11e000 - 0x7fff4c11efff libmetal_timestamp.dylib (802.4.8) <7E1B5ECC-7504-3B86-B3D9-5D8CDF88FCFA> /System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/3802/Libraries/libmetal_timestamp.dylib
0x7fff4d78a000 - 0x7fff4d78ffff com.apple.GPUWrangler (3.20.18 - 3.20.18) <B54A9063-01EC-3D2C-8924-86A1F315DEA2> /System/Library/PrivateFrameworks/GPUWrangler.framework/Versions/A/GPUWrangler
0x7fff4e505000 - 0x7fff4e514fff com.apple.GraphVisualizer (1.0 - 5) <EB42FFAD-2BCA-3DE2-B40E-AFDE6E7FAA4D> /System/Library/PrivateFrameworks/GraphVisualizer.framework/Versions/A/GraphVisualizer
0x7fff4e597000 - 0x7fff4e60bfff com.apple.Heimdal (4.0 - 2.0) <FF7BC1AE-1BA6-3150-A7CC-B9E0AD5EBE7F> /System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal
0x7fff4ef1e000 - 0x7fff4ef25ff7 com.apple.IOAccelerator (378.28 - 378.28) <F109E4CB-49D9-37FB-974A-8A3E9E8A61DA> /System/Library/PrivateFrameworks/IOAccelerator.framework/Versions/A/IOAccelerator
0x7fff4ef29000 - 0x7fff4ef40fff com.apple.IOPresentment (1.0 - 35.1) <AC89202B-8433-3B62-A7BE-467D1905F6FB> /System/Library/PrivateFrameworks/IOPresentment.framework/Versions/A/IOPresentment
0x7fff4f30b000 - 0x7fff4f331ffb com.apple.IconServices (97.6 - 97.6) <7913A453-8D29-31DC-ADDB-7CEC068C9B86> /System/Library/PrivateFrameworks/IconServices.framework/Versions/A/IconServices
0x7fff4f5b6000 - 0x7fff4f5c9ff3 com.apple.security.KeychainCircle.KeychainCircle (1.0 - 1) <B999BEF6-F3E7-30EE-9177-FBC8E826659D> /System/Library/PrivateFrameworks/KeychainCircle.framework/Versions/A/KeychainCircle
0x7fff4f5ca000 - 0x7fff4f6bfff7 com.apple.LanguageModeling (1.0 - 159.5.3) <FAA236D6-CFB8-37D2-B635-B324E0719E32> /System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling
0x7fff4f6c0000 - 0x7fff4f702fff com.apple.Lexicon-framework (1.0 - 33.5) <F8DD2D09-5CEE-3741-93CF-223FC61FCCA4> /System/Library/PrivateFrameworks/Lexicon.framework/Versions/A/Lexicon
0x7fff4f706000 - 0x7fff4f70dff7 com.apple.LinguisticData (1.0 - 238.3) <6F2ED02A-2120-3ABA-8EC1-314E4FFE77F3> /System/Library/PrivateFrameworks/LinguisticData.framework/Versions/A/LinguisticData
0x7fff4ff0e000 - 0x7fff4ff11fff com.apple.Mangrove (1.0 - 1) <471F4581-5235-3381-B16B-CE92ED6CF086> /System/Library/PrivateFrameworks/Mangrove.framework/Versions/A/Mangrove
0x7fff50421000 - 0x7fff5048aff7 com.apple.gpusw.MetalTools (1.0 - 1) <F2A47319-0430-3BB5-943E-651A40C127A9> /System/Library/PrivateFrameworks/MetalTools.framework/Versions/A/MetalTools
0x7fff50493000 - 0x7fff504aaff7 com.apple.MobileAssets (1.0 - 437.60.1) <94912D67-E290-3205-B919-C70C0A8D7FCF> /System/Library/PrivateFrameworks/MobileAsset.framework/Versions/A/MobileAsset
0x7fff50606000 - 0x7fff5061ffff com.apple.MobileKeyBag (2.0 - 1.0) <9EA31672-3B83-3ABF-B2D5-8584E159051E> /System/Library/PrivateFrameworks/MobileKeyBag.framework/Versions/A/MobileKeyBag
0x7fff506ab000 - 0x7fff506d5ffb com.apple.MultitouchSupport.framework (1614.1 - 1614.1) <A376F2FB-64AE-3B35-88B0-7D2BB4D1CB7C> /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport
0x7fff5093c000 - 0x7fff50947fff com.apple.NetAuth (6.2 - 6.2) <85C5D94D-C67E-36DC-B0EA-02F53AC4FCD3> /System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth
0x7fff521e3000 - 0x7fff521f3ffb com.apple.PerformanceAnalysis (1.194 - 194) <B6934994-BD69-36F9-914E-6BBDCD797612> /System/Library/PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/PerformanceAnalysis
0x7fff53fb2000 - 0x7fff53fd0fff com.apple.ProtocolBuffer (1 - 260) <195906B1-1DB1-3AD2-B2F7-87B867C27F40> /System/Library/PrivateFrameworks/ProtocolBuffer.framework/Versions/A/ProtocolBuffer
0x7fff541a7000 - 0x7fff541caffb com.apple.RemoteViewServices (2.0 - 125) <695CBF89-C15C-3E4C-8045-B46DCA64E3FB> /System/Library/PrivateFrameworks/RemoteViewServices.framework/Versions/A/RemoteViewServices
0x7fff55af0000 - 0x7fff55c05ff7 com.apple.Sharing (1050.22.9 - 1050.22.9) <CAB71093-B187-363E-BBAA-B0D23D7642AA> /System/Library/PrivateFrameworks/Sharing.framework/Versions/A/Sharing
0x7fff55c30000 - 0x7fff55c31ff7 com.apple.performance.SignpostNotification (1.2.6 - 2.6) <E77879A4-B040-3BE0-86F5-98173A4100AD> /System/Library/PrivateFrameworks/SignpostNotification.framework/Versions/A/SignpostNotification
0x7fff5698f000 - 0x7fff56c2cfff com.apple.SkyLight (1.600.0 - 312.103.12) <A65B547C-B7CA-3E33-A0C5-58AB436A8467> /System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/SkyLight
0x7fff573f5000 - 0x7fff57402fff com.apple.SpeechRecognitionCore (4.6.1 - 4.6.1) <90CDCEAD-5A65-3C35-9370-2B306895E97C> /System/Library/PrivateFrameworks/SpeechRecognitionCore.framework/Versions/A/SpeechRecognitionCore
0x7fff578af000 - 0x7fff578d6fff com.apple.StreamingZip (1.0 - 1) <B5C3D9D6-B1DC-33E5-B7D2-ADAF3E0CA30E> /System/Library/PrivateFrameworks/StreamingZip.framework/Versions/A/StreamingZip
0x7fff57fa8000 - 0x7fff58031fc7 com.apple.Symbolication (9.3 - 64033) <F576D527-4CB1-34A5-B15E-1130833EEDAB> /System/Library/PrivateFrameworks/Symbolication.framework/Versions/A/Symbolication
0x7fff585a2000 - 0x7fff585aaff7 com.apple.TCC (1.0 - 1) <9D5466C6-A8B6-3C24-A791-6506B81D9998> /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC
0x7fff587b7000 - 0x7fff58874ff7 com.apple.TextureIO (3.7 - 3.7) <32C460CD-E93D-3FA5-A4AE-CA648722F5FE> /System/Library/PrivateFrameworks/TextureIO.framework/Versions/A/TextureIO
0x7fff58925000 - 0x7fff58ad5fff com.apple.UIFoundation (1.0 - 547.9) <D0994333-5EB4-3415-8D18-2A0487AE91E0> /System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation
0x7fff597aa000 - 0x7fff59879ff7 com.apple.ViewBridge (343.2 - 343.2) <0A295791-B763-3E58-A9DD-8E4F40E815C9> /System/Library/PrivateFrameworks/ViewBridge.framework/Versions/A/ViewBridge
0x7fff5a251000 - 0x7fff5a253ffb com.apple.loginsupport (1.0 - 1) <E273A65A-6379-3787-B119-BC6ED94D4A81> /System/Library/PrivateFrameworks/login.framework/Versions/A/Frameworks/loginsupport.framework/Versions/A/loginsupport
0x7fff5a254000 - 0x7fff5a269fff com.apple.login (3.0 - 3.0) <73202649-0081-3B4B-AD90-226C4F69A705> /System/Library/PrivateFrameworks/login.framework/Versions/A/login
0x7fff5a3ba000 - 0x7fff5a3edff7 libclosured.dylib (551.5) <112BC241-6626-3848-8DD8-B34B5B6F7ABC> /usr/lib/closure/libclosured.dylib
0x7fff5a4a7000 - 0x7fff5a4e0ff7 libCRFSuite.dylib (41) <14B00FCF-4C67-3736-95B5-76FEA6E4972C> /usr/lib/libCRFSuite.dylib
0x7fff5a4e1000 - 0x7fff5a4ecfff libChineseTokenizer.dylib (28) <2237A259-0E59-3DD0-BADC-281C361FAB70> /usr/lib/libChineseTokenizer.dylib
0x7fff5a57e000 - 0x7fff5a57fff3 libDiagnosticMessagesClient.dylib (104) <3F855622-352B-3EA8-B7C8-94D1DB48C080> /usr/lib/libDiagnosticMessagesClient.dylib
0x7fff5a5b6000 - 0x7fff5a780ff3 libFosl_dynamic.dylib (17.8) <1A2A9D53-129E-3F7D-AE23-1D6E6D9EA017> /usr/lib/libFosl_dynamic.dylib
0x7fff5a7b8000 - 0x7fff5a7b8fff libOpenScriptingUtil.dylib (174) <AC38B2C3-5A37-30EB-A246-CEFABD3DD4E7> /usr/lib/libOpenScriptingUtil.dylib
0x7fff5a8ef000 - 0x7fff5a8f3ffb libScreenReader.dylib (562.18.5) <FFB20E40-7669-30F6-8577-B74E18076376> /usr/lib/libScreenReader.dylib
0x7fff5a8f4000 - 0x7fff5a8f5ffb libSystem.B.dylib (1252.50.4) <5A02016C-8F9D-3F47-8C39-AD2CD4F9F11D> /usr/lib/libSystem.B.dylib
0x7fff5a988000 - 0x7fff5a988fff libapple_crypto.dylib (109.50.15) <A8DEA8E9-5769-3C78-824D-969A98B94086> /usr/lib/libapple_crypto.dylib
0x7fff5a989000 - 0x7fff5a99fff7 libapple_nghttp2.dylib (1.24) <24338D88-5D73-3165-9CFB-5A92734C9040> /usr/lib/libapple_nghttp2.dylib
0x7fff5a9a0000 - 0x7fff5a9caff3 libarchive.2.dylib (54) <D2B6AD30-18CB-3E3C-ABBF-A0745654350F> /usr/lib/libarchive.2.dylib
0x7fff5a9cb000 - 0x7fff5aa4cfdf libate.dylib (1.13.1) <77603BB8-681D-32A6-966E-4F92B9165447> /usr/lib/libate.dylib
0x7fff5aa50000 - 0x7fff5aa50ff3 libauto.dylib (187) <92E693DF-D74D-39A0-99AB-8A9F6FFEBA18> /usr/lib/libauto.dylib
0x7fff5aa51000 - 0x7fff5ab0affb libboringssl.dylib (109.50.15) <FC25FE02-6AA8-3F0B-9EF3-56A455C08C0F> /usr/lib/libboringssl.dylib
0x7fff5ab0b000 - 0x7fff5ab1bff3 libbsm.0.dylib (39) <18D57879-A717-3466-9637-1704EE59A32A> /usr/lib/libbsm.0.dylib
0x7fff5ab1c000 - 0x7fff5ab29ffb libbz2.1.0.dylib (38) <0B4321CD-3D6F-3095-A12E-27F66B4321AD> /usr/lib/libbz2.1.0.dylib
0x7fff5ab2a000 - 0x7fff5ab80fff libc++.1.dylib (400.9) <142D6292-F30F-3949-9F37-3C97A579F540> /usr/lib/libc++.1.dylib
0x7fff5ab81000 - 0x7fff5aba5ff7 libc++abi.dylib (400.8.2) <EF5E37D7-11D9-3530-BE45-B986612D13E2> /usr/lib/libc++abi.dylib
0x7fff5aba7000 - 0x7fff5abb7fff libcmph.dylib (6) <890DEC4C-4334-393C-8B56-7C8560BBED9D> /usr/lib/libcmph.dylib
0x7fff5abb8000 - 0x7fff5abcffcf libcompression.dylib (47.60.2) <543F07BF-2F2F-37D5-9866-E84BF659885B> /usr/lib/libcompression.dylib
0x7fff5ae7a000 - 0x7fff5ae92ff7 libcoretls.dylib (155.50.1) <087E9F90-21E5-376D-9956-C4E346409682> /usr/lib/libcoretls.dylib
0x7fff5ae93000 - 0x7fff5ae94ff3 libcoretls_cfhelpers.dylib (155.50.1) <78CCDD10-7D71-365E-A0A5-8524ED5F5BF9> /usr/lib/libcoretls_cfhelpers.dylib
0x7fff5b365000 - 0x7fff5b3baff3 libcups.2.dylib (462.2.10) <590D6ACC-68A0-371E-8646-FC59F814534B> /usr/lib/libcups.2.dylib
0x7fff5b4fa000 - 0x7fff5b4fafff libenergytrace.dylib (16) <1F11D488-07C6-3D18-BEF2-0B28A992D761> /usr/lib/libenergytrace.dylib
0x7fff5b531000 - 0x7fff5b536ff3 libheimdal-asn1.dylib (520.50.9) <EF65C17E-31CD-31DC-876C-BF3EF393099C> /usr/lib/libheimdal-asn1.dylib
0x7fff5b562000 - 0x7fff5b653ff7 libiconv.2.dylib (51.50.1) <7965B866-C75A-3450-9891-0500349F7090> /usr/lib/libiconv.2.dylib
0x7fff5b654000 - 0x7fff5b87bffb libicucore.A.dylib (59181.0.1) <17767680-09DF-3954-AB6C-B13B41F92A2E> /usr/lib/libicucore.A.dylib
0x7fff5b8c8000 - 0x7fff5b8c9fff liblangid.dylib (128) <C54A2059-A4BE-364B-94C2-581C548459BC> /usr/lib/liblangid.dylib
0x7fff5b8ca000 - 0x7fff5b8e3ffb liblzma.5.dylib (10) <60BEAB81-CE65-3479-90CC-03325AACEC95> /usr/lib/liblzma.5.dylib
0x7fff5b8e4000 - 0x7fff5b8faff7 libmarisa.dylib (9) <47540053-02CF-35F8-A75E-074DB3D51812> /usr/lib/libmarisa.dylib
0x7fff5b9ab000 - 0x7fff5bbd3ff7 libmecabra.dylib (779.7.6) <B2ACB6A9-91AE-364B-9418-8EB938BF82B6> /usr/lib/libmecabra.dylib
0x7fff5bdab000 - 0x7fff5bf26fff libnetwork.dylib (1229.70.2) <0596A03E-C984-3FE6-B88E-63D5F96EC49A> /usr/lib/libnetwork.dylib
0x7fff5bfad000 - 0x7fff5c39b7e7 libobjc.A.dylib (723) <843EFB54-EFCC-3A7C-BE11-092B6A556262> /usr/lib/libobjc.A.dylib
0x7fff5c3ae000 - 0x7fff5c3b2fff libpam.2.dylib (22) <E5840D63-8506-301A-9182-5000031854E1> /usr/lib/libpam.2.dylib
0x7fff5c3b5000 - 0x7fff5c3edff7 libpcap.A.dylib (79.20.3) <6A9D27FA-2780-3E96-8B2E-645638AC13AC> /usr/lib/libpcap.A.dylib
0x7fff5c46c000 - 0x7fff5c488ffb libresolv.9.dylib (65.1) <D9BB6307-71E4-3A94-A745-1FCA114C6894> /usr/lib/libresolv.9.dylib
0x7fff5c4d7000 - 0x7fff5c4d8ff3 libspindump.dylib (252) <7BE3801C-F1F5-3F54-AB70-9842F8EF3F09> /usr/lib/libspindump.dylib
0x7fff5c4d9000 - 0x7fff5c66cff7 libsqlite3.dylib (274.8.1) <FCAD6A57-829E-3701-B16E-1833D620E0E8> /usr/lib/libsqlite3.dylib
0x7fff5c840000 - 0x7fff5c8a0ff3 libusrtcp.dylib (1229.70.2) <1E065228-D0E3-3808-9405-894056C6BEC0> /usr/lib/libusrtcp.dylib
0x7fff5c8a1000 - 0x7fff5c8a4ffb libutil.dylib (51.20.1) <A50E15F1-20A2-3EA7-A8CE-A43662E18587> /usr/lib/libutil.dylib
0x7fff5c8a5000 - 0x7fff5c8b2ff3 libxar.1.dylib (417.1) <351781D5-3CCF-320F-BB5A-4DFCC1CCD31D> /usr/lib/libxar.1.dylib
0x7fff5c8b6000 - 0x7fff5c99dffb libxml2.2.dylib (31.20) <286F8531-7001-3989-9640-284443355433> /usr/lib/libxml2.2.dylib
0x7fff5c99e000 - 0x7fff5c9c6fff libxslt.1.dylib (15.16) <57D56366-1E7B-356C-B2B8-F4688FF666E6> /usr/lib/libxslt.1.dylib
0x7fff5c9c7000 - 0x7fff5c9d9ffb libz.1.dylib (70) <47278BDC-596E-3037-B8DA-05FE9D5DBEF6> /usr/lib/libz.1.dylib
0x7fff5ca75000 - 0x7fff5ca79ff7 libcache.dylib (80) <096D3699-58D2-3D23-9512-BC88DAE7B16C> /usr/lib/system/libcache.dylib
0x7fff5ca7a000 - 0x7fff5ca84ff3 libcommonCrypto.dylib (60118.50.1) <B4E77BD4-A809-37E1-8A79-25955E0F5D9C> /usr/lib/system/libcommonCrypto.dylib
0x7fff5ca85000 - 0x7fff5ca8cfff libcompiler_rt.dylib (62) <4CEED002-D00B-35F8-B563-0546A5F71A43> /usr/lib/system/libcompiler_rt.dylib
0x7fff5ca8d000 - 0x7fff5ca96ffb libcopyfile.dylib (146.50.5) <F7A7999F-9509-3C67-8EE9-95BEE6772676> /usr/lib/system/libcopyfile.dylib
0x7fff5ca97000 - 0x7fff5cb1cffb libcorecrypto.dylib (562.70.3) <9C6E5CC2-272B-3740-AEDB-9EBEC98EC7F9> /usr/lib/system/libcorecrypto.dylib
0x7fff5cba4000 - 0x7fff5cbddff7 libdispatch.dylib (913.60.3) <285526B6-A2A6-316D-A1CC-37803B71E203> /usr/lib/system/libdispatch.dylib
0x7fff5cbde000 - 0x7fff5cbfbff7 libdyld.dylib (551.5) <49ABA86D-DD48-3133-9B14-B9A564EEBC66> /usr/lib/system/libdyld.dylib
0x7fff5cbfc000 - 0x7fff5cbfcffb libkeymgr.dylib (28) <7CC7B5E1-AB7F-3495-A26A-396461BCB66B> /usr/lib/system/libkeymgr.dylib
0x7fff5cbfd000 - 0x7fff5cc09ff3 libkxld.dylib (4570.71.82.8) <44AF05D7-6BDF-3A9B-B5CF-D16C98B6844E> /usr/lib/system/libkxld.dylib
0x7fff5cc0a000 - 0x7fff5cc0aff7 liblaunch.dylib (1205.70.16) <265EE555-E988-3EE5-A39E-028FB3A5FE11> /usr/lib/system/liblaunch.dylib
0x7fff5cc0b000 - 0x7fff5cc0fffb libmacho.dylib (906) <F5F16E2F-F961-3FF4-B02F-69BBDB57B8DC> /usr/lib/system/libmacho.dylib
0x7fff5cc10000 - 0x7fff5cc12fff libquarantine.dylib (86.70.1) <262CECFE-A493-3EC6-8608-CEA93757265E> /usr/lib/system/libquarantine.dylib
0x7fff5cc13000 - 0x7fff5cc14ff3 libremovefile.dylib (45) <EA24BFB6-24B7-3841-8AAC-FAF400910706> /usr/lib/system/libremovefile.dylib
0x7fff5cc15000 - 0x7fff5cc2cfff libsystem_asl.dylib (356.70.1) <9481D82D-CFB7-3032-A07F-88F7F59CAC2C> /usr/lib/system/libsystem_asl.dylib
0x7fff5cc2d000 - 0x7fff5cc2dfff libsystem_blocks.dylib (67) <FA2C3663-9DBB-3AFB-80A3-E77BE0816AD0> /usr/lib/system/libsystem_blocks.dylib
0x7fff5cc2e000 - 0x7fff5ccb7ff7 libsystem_c.dylib (1244.50.9) <25DD83D8-80CA-3DFF-8626-FE704911F19C> /usr/lib/system/libsystem_c.dylib
0x7fff5ccb8000 - 0x7fff5ccbbffb libsystem_configuration.dylib (963.50.9) <61B26E1D-FEFF-38C6-AE0E-A6DD90145EB2> /usr/lib/system/libsystem_configuration.dylib
0x7fff5ccbc000 - 0x7fff5ccbfffb libsystem_coreservices.dylib (51) <E8FA663F-1B0F-3B12-8F97-31A46E6B4D68> /usr/lib/system/libsystem_coreservices.dylib
0x7fff5ccc0000 - 0x7fff5ccc1fff libsystem_darwin.dylib (1244.50.9) <6195EEA1-83A7-35F0-8147-5AB031020CD0> /usr/lib/system/libsystem_darwin.dylib
0x7fff5ccc2000 - 0x7fff5ccc8ffb libsystem_dnssd.dylib (878.70.4) <0D2C9583-5D28-375B-AEB4-F66F18C78322> /usr/lib/system/libsystem_dnssd.dylib
0x7fff5ccc9000 - 0x7fff5cd12ff7 libsystem_info.dylib (517.30.1) <9C2C96F3-638B-34E7-A2BD-24C643EAF957> /usr/lib/system/libsystem_info.dylib
0x7fff5cd13000 - 0x7fff5cd39ff7 libsystem_kernel.dylib (4570.71.82.8) <C34BA704-FAFF-3DDB-9827-5930B5BEF134> /usr/lib/system/libsystem_kernel.dylib
0x7fff5cd3a000 - 0x7fff5cd85fcb libsystem_m.dylib (3147.50.1) <B3172533-77D2-3416-8487-4A505198E9E1> /usr/lib/system/libsystem_m.dylib
0x7fff5cd86000 - 0x7fff5cda5ff7 libsystem_malloc.dylib (140.50.7) <821E16C8-7A7E-3269-9167-10F4F413BF93> /usr/lib/system/libsystem_malloc.dylib
0x7fff5cda6000 - 0x7fff5ced6ff7 libsystem_network.dylib (1229.70.2) <07BFD80A-E7EB-3DEB-B765-5E1659453114> /usr/lib/system/libsystem_network.dylib
0x7fff5ced7000 - 0x7fff5cee1ffb libsystem_networkextension.dylib (767.70.2) <A90BAFFD-AC3D-3078-90B2-71463DBFD4A5> /usr/lib/system/libsystem_networkextension.dylib
0x7fff5cee2000 - 0x7fff5ceebff3 libsystem_notify.dylib (172) <738B3BB0-4F20-3446-A3B6-095D796E5903> /usr/lib/system/libsystem_notify.dylib
0x7fff5ceec000 - 0x7fff5cef3ff7 libsystem_platform.dylib (161.50.1) <90A2A62F-8690-3FA7-A4D0-9085BF2FA44A> /usr/lib/system/libsystem_platform.dylib
0x7fff5cef4000 - 0x7fff5cefffff libsystem_pthread.dylib (301.50.1) <283E64A7-A2B2-3212-95BA-4D21F9AE36CF> /usr/lib/system/libsystem_pthread.dylib
0x7fff5cf00000 - 0x7fff5cf03fff libsystem_sandbox.dylib (765.70.2) <C29E1B7A-F39B-344E-98F7-8FB32B10AE0A> /usr/lib/system/libsystem_sandbox.dylib
0x7fff5cf04000 - 0x7fff5cf05ff3 libsystem_secinit.dylib (30) <4E84DF62-57B5-36F9-819F-3C1E7FEDA856> /usr/lib/system/libsystem_secinit.dylib
0x7fff5cf06000 - 0x7fff5cf0dff7 libsystem_symptoms.dylib (820.60.3) <A45B4D84-2C69-3F19-83C2-2F1EEA73A7B5> /usr/lib/system/libsystem_symptoms.dylib
0x7fff5cf0e000 - 0x7fff5cf22ff7 libsystem_trace.dylib (829.70.2) <4C4E5351-E370-3226-9B30-61E250DE3B2E> /usr/lib/system/libsystem_trace.dylib
0x7fff5cf24000 - 0x7fff5cf29ff7 libunwind.dylib (35.3) <BAE12DA3-CF33-32AD-86B0-CCD6705ADFAA> /usr/lib/system/libunwind.dylib
0x7fff5cf2a000 - 0x7fff5cf57fff libxpc.dylib (1205.70.16) <26D99819-B813-320E-9E8F-9D57AD2DA63B> /usr/lib/system/libxpc.dylib
External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by all processes on this machine:
task_for_pid: 188188
thread_create: 0
thread_set_state: 0
VM Region Summary:
ReadOnly portion of Libraries: Total=361.7M resident=0K(0%) swapped_out_or_unallocated=361.7M(100%)
Writable regions: Total=209.6M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=209.6M(100%)
VIRTUAL REGION
REGION TYPE SIZE COUNT (non-coalesced)
=========== ======= =======
Accelerate framework 128K 2
Activity Tracing 256K 2
CG backing stores 37.4M 4
CG image 484K 17
CoreAnimation 644K 22
CoreGraphics 8K 2
CoreImage 108K 8
CoreUI image data 2064K 15
CoreUI image file 360K 6
Dispatch continuations 16.0M 2
Foundation 4K 2
Image IO 64K 2
Kernel Alloc Once 8K 2
MALLOC 137.7M 35
MALLOC guard page 48K 10
Memory Tag 242 12K 2
STACK GUARD 40K 11
Stack 13.1M 12
Stack (reserved) 1596K 2 reserved VM address space (unallocated)
Stack Guard 54.4M 2
VM_ALLOCATE 356K 18
__DATA 27.9M 256
__FONT_DATA 4K 2
__LINKEDIT 195.6M 20
__TEXT 166.1M 259
__UNICODE 560K 2
mapped file 70.9M 23
shared memory 740K 15
=========== ======= =======
TOTAL 726.5M 727
TOTAL, minus reserved VM space 725.0M 727
Model: MacBookPro11,4, BootROM 199.0.0.0.0, 4 processors, Intel Core i7, 2.2 GHz, 16 GB, SMC 2.29f24
Graphics: Intel Iris Pro, Intel Iris Pro, Built-In
Memory Module: BANK 0/DIMM0, 8 GB, DDR3, 1600 MHz, 0x80AD, 0x484D54343147533642465238412D50422020
Memory Module: BANK 1/DIMM0, 8 GB, DDR3, 1600 MHz, 0x80AD, 0x484D54343147533642465238412D50422020
AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x152), Broadcom BCM43xx 1.0 (7.77.37.33.1a1)
Bluetooth: Version 6.0.7f22, 3 services, 27 devices, 1 incoming serial ports
Network Service: Wi-Fi, AirPort, en0
Serial ATA Device: APPLE SSD SM0256G, 251 GB
USB Device: USB 3.0 Bus
USB Device: USB3.0 Hub
USB Device: Elements SE 25FE
USB Device: Elements 25A1
USB Device: Apple Internal Keyboard / Trackpad
USB Device: Bluetooth USB Host Controller
USB Device: USB2.0 Hub
Thunderbolt Bus: MacBook Pro, Apple Inc., 27.1
[-- Attachment #5: ns-fullscreen-with-toolbar.png --]
[-- Type: image/png, Size: 165734 bytes --]
^ permalink raw reply related [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-16 9:16 ` Paul W. Rankin via Emacs development discussions.
@ 2021-05-26 19:56 ` Alan Third
2021-05-27 11:06 ` Andrii Kolomoiets
2021-06-05 20:58 ` Alan Third
0 siblings, 2 replies; 44+ messages in thread
From: Alan Third @ 2021-05-26 19:56 UTC (permalink / raw)
To: Paul W. Rankin; +Cc: emacs-devel
On Sun, May 16, 2021 at 07:16:54PM +1000, Paul W. Rankin wrote:
> On 2021-05-14 07:05, Alan Third wrote:
> > On Thu, May 13, 2021 at 03:46:54PM +1000, Paul W. Rankin via Emacs
> > development discussions. wrote:
> > > On 2021-05-13 07:23, Alan Third wrote:
> > > You're right and I can't find another macOS app with a tab bar that
> > > behaves
> > > the way Emacs.app does, so I gotta assume there is something somewhere
> > > overriding the Cocoa window manager behaviour. But I'm really only
> > > qualified
> > > to guess; I looked through nsterm.m and changed a few suspected BOOL
> > > values
> > > and recompiled a few times but nothing had an effect on the hidden
> > > tab bar.
> > >
> > > Relatedly, tool-bar-mode is in the same boat; hidden in full screen,
> > > but
> > > probably shouldn't be.
> >
> > Search in nsterm.m for "autohide", there are a couple of places where
> > hiding various bits and bobs is done, all related to fullscreen
> > afaict.
> >
> > I'm not on a Mac just now or I'd try removing them all to see what it
> > does.
>
> Looks like you're on the money!
>
> I've attached two patches: 0001 is to remove the explicit setting of
> NSWindowTabbingModeDisallowed;
If you write up a wee NEWS entry, I'll be happy to push this change to
master and we can see is anyone shouts. :)
Please make sure to mention where to go to turn off tabbing.
> 0002 allows visibility of the toolbar and tab
> bar in fullscreen (screenshot attached), but reliably causes a segmentation
> fault with the following steps:
>
> 1. System Preferences > Dock > Prefer tabs... [Always]
> 2. $ emacs -Q
> 3. M-x toggle-frame-full
> 4. M-x make-frame
> 5. M-x delete-frame
>
> Attached crash.log.
>
> Interestingly, calling delete-other-frames does not trigger a crash and when
> in windowed (non-fullscreen) a crash is only triggered with the following:
>
> 1. System Preferences > Dock > Prefer tabs... [Always]
> 2. $ emacs -Q
> 3. M-x make-frame
> 4. M-x make-frame
> 5. click close background tab
> 6. wait for animation to finish
> 7. click close foreground tab
Hmm... My money is on something being accessed after being released...
It reminds me of some relatively recent fix we made, but I can't for
the life of me think what.
Anyway, I'm discussing with Andrii in another bug thread about
removing the pause that's built into fullscreen transitions so we may
want to wait for that to be sorted before we look further into crashes
that happen in the same place.
> There are three positions someone could take:
>
> 1. wants tabs in all macOS apps including Emacs.app
> 2. does not want tabs in any macOS apps including Emacs.app
> 3. wants tabs in all other macOS except for Emacs.app
>
> Anyone in categories 1 and 2 will be covered by the option in System
> Preferences. Given that all I think we're doing here is removing old barrier
> code to have Emacs function with an OS's native window manager, anyone in
> the third category would be putting the onus on themselves to write code for
> additional functionality.
Yes, I'm happy enough with this.
--
Alan Third
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-26 19:56 ` Alan Third
@ 2021-05-27 11:06 ` Andrii Kolomoiets
2021-05-28 8:26 ` martin rudalics
2021-06-05 20:58 ` Alan Third
1 sibling, 1 reply; 44+ messages in thread
From: Andrii Kolomoiets @ 2021-05-27 11:06 UTC (permalink / raw)
To: Alan Third; +Cc: Paul W. Rankin, emacs-devel
Alan Third <alan@idiocy.org> writes:
> Anyway, I'm discussing with Andrii in another bug thread about
> removing the pause that's built into fullscreen transitions so we may
> want to wait for that to be sorted before we look further into crashes
> that happen in the same place.
I'm a little short on time at the moment. I won't mind if someone beats
me on it :)
I didn't follow this thread closely, apologize if these questions was
discussed already, but here my two cents.
1. System Preferences > Dock > Prefer tabs... [Always]
2. emacs -Q
3. s-n
4. s-w
Repeat steps 3 and 4 few times, note how the frame height is increased.
1. System Preferences > Dock > Prefer tabs... [Always]
2. emacs -Q --execute "(push '(ns-transparent-titlebar . t) default-frame-alist)"
3. s-n
The new frame is created instead of new tab.
Maybe these use cases can be solved in separate patches.
Anyway, I really like that native macOS tabs support is coming to
Emacs. Thanks!
--
Andrii
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-27 11:06 ` Andrii Kolomoiets
@ 2021-05-28 8:26 ` martin rudalics
2021-05-28 8:28 ` Paul W. Rankin via Emacs development discussions.
0 siblings, 1 reply; 44+ messages in thread
From: martin rudalics @ 2021-05-28 8:26 UTC (permalink / raw)
To: Andrii Kolomoiets, Alan Third; +Cc: Paul W. Rankin, emacs-devel
> 1. System Preferences > Dock > Prefer tabs... [Always]
> 2. emacs -Q
> 3. s-n
> 4. s-w
What do s-n and s-w do (which emacs function do they ultimately call)?
> Repeat steps 3 and 4 few times, note how the frame height is increased.
martin
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-28 8:26 ` martin rudalics
@ 2021-05-28 8:28 ` Paul W. Rankin via Emacs development discussions.
2021-05-28 8:36 ` martin rudalics
0 siblings, 1 reply; 44+ messages in thread
From: Paul W. Rankin via Emacs development discussions. @ 2021-05-28 8:28 UTC (permalink / raw)
To: martin rudalics; +Cc: Andrii Kolomoiets, Alan Third, emacs-devel
> On 28 May 2021, at 6:26 pm, martin rudalics <rudalics@gmx.at> wrote:
>
> > 1. System Preferences > Dock > Prefer tabs... [Always]
> > 2. emacs -Q
> > 3. s-n
> > 4. s-w
>
> What do s-n and s-w do (which emacs function do they ultimately call)?
>
> > Repeat steps 3 and 4 few times, note how the frame height is increased.
s-n (make-frame)
s-w (delete-frame)
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-28 8:28 ` Paul W. Rankin via Emacs development discussions.
@ 2021-05-28 8:36 ` martin rudalics
2021-05-28 8:54 ` Alan Third
2021-05-28 9:07 ` Andrii Kolomoiets
0 siblings, 2 replies; 44+ messages in thread
From: martin rudalics @ 2021-05-28 8:36 UTC (permalink / raw)
To: Paul W. Rankin; +Cc: Alan Third, Andrii Kolomoiets, emacs-devel
>> What do s-n and s-w do (which emacs function do they ultimately call)?
>>
>>> Repeat steps 3 and 4 few times, note how the frame height is increased.
>
> s-n (make-frame)
> s-w (delete-frame)
Hmm... Then "the frame height" refers to the height of different
frames? Does it always increase by the same amount? Does it ever stop
to do that?
martin
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-28 8:36 ` martin rudalics
@ 2021-05-28 8:54 ` Alan Third
2021-06-06 4:09 ` Paul W. Rankin via Emacs development discussions.
2021-05-28 9:07 ` Andrii Kolomoiets
1 sibling, 1 reply; 44+ messages in thread
From: Alan Third @ 2021-05-28 8:54 UTC (permalink / raw)
To: martin rudalics; +Cc: Paul W. Rankin, Andrii Kolomoiets, emacs-devel
On Fri, May 28, 2021 at 10:36:07AM +0200, martin rudalics wrote:
> >> What do s-n and s-w do (which emacs function do they ultimately call)?
> >>
> >>> Repeat steps 3 and 4 few times, note how the frame height is increased.
> >
> > s-n (make-frame)
> > s-w (delete-frame)
>
> Hmm... Then "the frame height" refers to the height of different
> frames? Does it always increase by the same amount? Does it ever stop
> to do that?
Without having looked at it at all I'd imagine the problem is that the
tab-bar is an extra toolbar below the Emacs toolbar which we will need
to take into account when calculating the size of the various
components.
For example, IIRC, the height of the Emacs toolbar is calculated as
the height of the OS window minus the height of the Emacs view and the
titlebar. This is clearly not going to be right when we have an extra
widget in there.
--
Alan Third
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-28 8:36 ` martin rudalics
2021-05-28 8:54 ` Alan Third
@ 2021-05-28 9:07 ` Andrii Kolomoiets
2021-05-28 9:21 ` martin rudalics
1 sibling, 1 reply; 44+ messages in thread
From: Andrii Kolomoiets @ 2021-05-28 9:07 UTC (permalink / raw)
To: martin rudalics; +Cc: Alan Third, Paul W. Rankin, emacs-devel
martin rudalics <rudalics@gmx.at> writes:
>>> What do s-n and s-w do (which emacs function do they ultimately call)?
>>>
>>>> Repeat steps 3 and 4 few times, note how the frame height is increased.
>>
>> s-n (make-frame)
>> s-w (delete-frame)
>
> Hmm... Then "the frame height" refers to the height of different
> frames? Does it always increase by the same amount?
All Emacs frames are grouped in single window manager window. I refer
to that window manager window as frame.
Initially the tab bar is hidden. After new frame created (s-n), the tab
bar is shown with two tabs, frame height is increased by the tab bar
height. After frame deleted (s-w), tab bar become hidden again but
frame height is not decreased.
--
Andrii
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-28 9:07 ` Andrii Kolomoiets
@ 2021-05-28 9:21 ` martin rudalics
2021-05-28 9:37 ` Paul W. Rankin via Emacs development discussions.
0 siblings, 1 reply; 44+ messages in thread
From: martin rudalics @ 2021-05-28 9:21 UTC (permalink / raw)
To: Andrii Kolomoiets; +Cc: Alan Third, Paul W. Rankin, emacs-devel
> All Emacs frames are grouped in single window manager window. I refer
> to that window manager window as frame.
I'm afraid that will confuse us. Let's call that WM-frame.
> Initially the tab bar is hidden. After new frame created (s-n), the tab
> bar is shown with two tabs,
Why? Have you `tab-bar-mode' turned on or have you set the
`tab-bar-lines' frame parameter?
> frame height is increased by the tab bar
> height.
That's intentional: We do that to produce the initial frame height as
specified. What does (frame-height) give after that frame has become
visible?
> After frame deleted (s-w), tab bar become hidden again but
> frame height is not decreased.
That's intentional again. If the tab bar has been shown once, the
"native" height of its frame should remain constant when toggling or
wrapping the tab bar. Just like the internal tool bar on Lucid or
Windows builds.
martin
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-28 9:21 ` martin rudalics
@ 2021-05-28 9:37 ` Paul W. Rankin via Emacs development discussions.
2021-05-28 9:51 ` martin rudalics
0 siblings, 1 reply; 44+ messages in thread
From: Paul W. Rankin via Emacs development discussions. @ 2021-05-28 9:37 UTC (permalink / raw)
To: martin rudalics; +Cc: Andrii Kolomoiets, Alan Third, emacs-devel
> On 28 May 2021, at 7:21 pm, martin rudalics <rudalics@gmx.at> wrote:
>
> > Initially the tab bar is hidden. After new frame created (s-n), the tab
> > bar is shown with two tabs,
>
> Why? Have you `tab-bar-mode' turned on or have you set the
> `tab-bar-lines' frame parameter?
It's important to note that this is not related to `tab-bar-mode'. These tabs are part of the OS's native window manager chrome.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-28 9:37 ` Paul W. Rankin via Emacs development discussions.
@ 2021-05-28 9:51 ` martin rudalics
2021-05-28 14:33 ` Paul W. Rankin via Emacs development discussions.
0 siblings, 1 reply; 44+ messages in thread
From: martin rudalics @ 2021-05-28 9:51 UTC (permalink / raw)
To: Paul W. Rankin; +Cc: Alan Third, Andrii Kolomoiets, emacs-devel
>> Why? Have you `tab-bar-mode' turned on or have you set the
>> `tab-bar-lines' frame parameter?
>
> It's important to note that this is not related to `tab-bar-mode'. These tabs are part of the OS's native window manager chrome.
I see. So what does really "grow" and not "shrink": The window manager
frame or the Emacs frame? If it's the former, then the behavior should
be seen by displaying any other application's windows in the window
manager frame and the behavior is not Emacs specific. Right?
martin
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-28 9:51 ` martin rudalics
@ 2021-05-28 14:33 ` Paul W. Rankin via Emacs development discussions.
2021-05-28 20:52 ` Andrii Kolomoiets
0 siblings, 1 reply; 44+ messages in thread
From: Paul W. Rankin via Emacs development discussions. @ 2021-05-28 14:33 UTC (permalink / raw)
To: martin rudalics; +Cc: Andrii Kolomoiets, Alan Third, emacs-devel
> On 28 May 2021, at 7:51 pm, martin rudalics <rudalics@gmx.at> wrote:
>
> >> Why? Have you `tab-bar-mode' turned on or have you set the
> >> `tab-bar-lines' frame parameter?
> >
> > It's important to note that this is not related to `tab-bar-mode'. These tabs are part of the OS's native window manager chrome.
>
> I see. So what does really "grow" and not "shrink": The window manager
> frame or the Emacs frame? If it's the former, then the behavior should
> be seen by displaying any other application's windows in the window
> manager frame and the behavior is not Emacs specific. Right?
>
> martin
This might be best illustrated with a quick video showing how the Emacs.app frame behaves when creating a new tab vs a native macOS app:
https://f002.backblazeb2.com/file/pwr-share/emacs_nsterm.mov (16MB)
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-28 14:33 ` Paul W. Rankin via Emacs development discussions.
@ 2021-05-28 20:52 ` Andrii Kolomoiets
0 siblings, 0 replies; 44+ messages in thread
From: Andrii Kolomoiets @ 2021-05-28 20:52 UTC (permalink / raw)
To: Paul W. Rankin; +Cc: martin rudalics, Alan Third, emacs-devel
"Paul W. Rankin" <pwr@bydasein.com> writes:
>> On 28 May 2021, at 7:51 pm, martin rudalics <rudalics@gmx.at> wrote:
>>
>> >> Why? Have you `tab-bar-mode' turned on or have you set the
>> >> `tab-bar-lines' frame parameter?
>> >
>> > It's important to note that this is not related to
>> > `tab-bar-mode'. These tabs are part of the OS's native window
>> > manager chrome.
>>
>> I see. So what does really "grow" and not "shrink": The window manager
>> frame or the Emacs frame? If it's the former, then the behavior should
>> be seen by displaying any other application's windows in the window
>> manager frame and the behavior is not Emacs specific. Right?
>>
>
> This might be best illustrated with a quick video showing how the
> Emacs.app frame behaves when creating a new tab vs a native macOS app:
Also check out the Terminal.app behavior. It restores the WM-frame size
once tab bar is hidden.
--
Andrii
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-26 19:56 ` Alan Third
2021-05-27 11:06 ` Andrii Kolomoiets
@ 2021-06-05 20:58 ` Alan Third
2021-06-06 4:01 ` Paul W. Rankin via Emacs development discussions.
1 sibling, 1 reply; 44+ messages in thread
From: Alan Third @ 2021-06-05 20:58 UTC (permalink / raw)
To: Paul W. Rankin, emacs-devel
On Wed, May 26, 2021 at 08:56:19PM +0100, Alan Third wrote:
> On Sun, May 16, 2021 at 07:16:54PM +1000, Paul W. Rankin wrote:
> >
> > I've attached two patches: 0001 is to remove the explicit setting of
> > NSWindowTabbingModeDisallowed;
>
> If you write up a wee NEWS entry, I'll be happy to push this change to
> master and we can see is anyone shouts. :)
>
> Please make sure to mention where to go to turn off tabbing.
Hi Paul, did you get a chance to add a NEWS entry? If you don't have
the time (or feel confident enough), please send a small
description of what's changed and how to disable the tab-bar and I'll
finish it up.
--
Alan Third
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-06-05 20:58 ` Alan Third
@ 2021-06-06 4:01 ` Paul W. Rankin via Emacs development discussions.
2021-06-06 6:14 ` Eli Zaretskii
0 siblings, 1 reply; 44+ messages in thread
From: Paul W. Rankin via Emacs development discussions. @ 2021-06-06 4:01 UTC (permalink / raw)
To: Alan Third; +Cc: emacs-devel
[-- Attachment #1: Type: text/plain, Size: 775 bytes --]
> On 6 Jun 2021, at 6:58 am, Alan Third <alan@idiocy.org> wrote:
>
> On Wed, May 26, 2021 at 08:56:19PM +0100, Alan Third wrote:
>> On Sun, May 16, 2021 at 07:16:54PM +1000, Paul W. Rankin wrote:
>>>
>>> I've attached two patches: 0001 is to remove the explicit setting of
>>> NSWindowTabbingModeDisallowed;
>>
>> If you write up a wee NEWS entry, I'll be happy to push this change to
>> master and we can see is anyone shouts. :)
>>
>> Please make sure to mention where to go to turn off tabbing.
>
> Hi Paul, did you get a chance to add a NEWS entry? If you don't have
> the time (or feel confident enough), please send a small
> description of what's changed and how to disable the tab-bar and I'll
> finish it up.
Hi Alan,
Sorry I was just being lazy. Attached!
[-- Attachment #2: 0001-src-nsterm.m-fix-window-tabbing-on-macOS.patch --]
[-- Type: application/octet-stream, Size: 2074 bytes --]
From 41fafc79a7371be9244460fca0c6b8d3c053de8c Mon Sep 17 00:00:00 2001
From: "Paul W. Rankin" <pwr@bydasein.com>
Date: Sat, 8 May 2021 19:09:59 +1000
Subject: [PATCH] src/nsterm.m: fix window tabbing on macOS
* src/nsterm.m: remove NSWindowTabbingModeDisallowed to respect
system-wide preferences
* etc/NEWS: add mention of native tab support in macOS and where
to specify system-wide setting
---
etc/NEWS | 8 ++++++++
src/nsterm.m | 8 --------
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/etc/NEWS b/etc/NEWS
index 32d7c4fe18..a3073d2033 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -3110,6 +3110,14 @@ The new variable 'xwidget-webkit-download-dir' says where to download to.
'module-file-suffix' now has the value ".dylib" on macOS, but the
".so" suffix is supported as well.
++++
+** On macOS, Emacs now supports native tabs (available in macOS 10.12
+and later). Native tabbing behavior is specified system-wide via
+System Preferences, under under General > 'Prefer tabs when opening
+documents'. In macOS versions 10.15 and earlier, this option is
+located under Dock instead. Note that this feature is unrelated to the
+Emacs 'tab-bar-mode'.
+
+++
** On MS-Windows, Emacs can now toggle the IME.
A new function 'w32-set-ime-open-status' can now be used to disable
diff --git a/src/nsterm.m b/src/nsterm.m
index bb20886ab1..5fd4885801 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -7628,14 +7628,6 @@ - (instancetype) initFrameFromEmacs: (struct frame *)f
selector:@selector (viewDidResize:)
name:NSViewFrameDidChangeNotification object:nil];
- /* macOS Sierra automatically enables tabbed windows. We can't
- allow this to be enabled until it's available on a Free system.
- Currently it only happens by accident and is buggy anyway. */
-#ifdef NS_IMPL_COCOA
- if ([win respondsToSelector: @selector(setTabbingMode:)])
- [win setTabbingMode: NSWindowTabbingModeDisallowed];
-#endif
-
ns_window_num++;
return self;
}
--
2.30.1
^ permalink raw reply related [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-05-28 8:54 ` Alan Third
@ 2021-06-06 4:09 ` Paul W. Rankin via Emacs development discussions.
2021-06-06 7:43 ` martin rudalics
0 siblings, 1 reply; 44+ messages in thread
From: Paul W. Rankin via Emacs development discussions. @ 2021-06-06 4:09 UTC (permalink / raw)
To: Alan Third; +Cc: martin rudalics, Andrii Kolomoiets, emacs-devel
> On 28 May 2021, at 6:54 pm, Alan Third <alan@idiocy.org> wrote:
>
> On Fri, May 28, 2021 at 10:36:07AM +0200, martin rudalics wrote:
>>>> What do s-n and s-w do (which emacs function do they ultimately call)?
>>>>
>>>>> Repeat steps 3 and 4 few times, note how the frame height is increased.
>>>
>>> s-n (make-frame)
>>> s-w (delete-frame)
>>
>> Hmm... Then "the frame height" refers to the height of different
>> frames? Does it always increase by the same amount? Does it ever stop
>> to do that?
>
> Without having looked at it at all I'd imagine the problem is that the
> tab-bar is an extra toolbar below the Emacs toolbar which we will need
> to take into account when calculating the size of the various
> components.
>
> For example, IIRC, the height of the Emacs toolbar is calculated as
> the height of the OS window minus the height of the Emacs view and the
> titlebar. This is clearly not going to be right when we have an extra
> widget in there.
Fwiw, most native macOS app windows can show/hide their toolbar, and when they do this, the window itself maintains overall size. However in Emacs when toggling tool-bar-mode the window grows/shrinks in overall size (i.e. maintains window lines).
So I guess one of the questions here is whether to do these height calculation to maintain overall window size (and thus consistency with the OS) or to maintain visible window lines.
Sorry I would like to provide more insights here but I'm still at the very early stages of learning C.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-06-06 4:01 ` Paul W. Rankin via Emacs development discussions.
@ 2021-06-06 6:14 ` Eli Zaretskii
2021-06-06 6:48 ` Paul W. Rankin via Emacs development discussions.
0 siblings, 1 reply; 44+ messages in thread
From: Eli Zaretskii @ 2021-06-06 6:14 UTC (permalink / raw)
To: Paul W. Rankin; +Cc: alan, emacs-devel
> Feedback-ID: 791:353:null:purelymail
> Date: Sun, 6 Jun 2021 14:01:26 +1000
> Cc: emacs-devel@gnu.org
> From: "Paul W. Rankin" via "Emacs development discussions." <emacs-devel@gnu.org>
>
> ++++
> +** On macOS, Emacs now supports native tabs (available in macOS 10.12
> +and later). Native tabbing behavior is specified system-wide via
> +System Preferences, under under General > 'Prefer tabs when opening
> +documents'. In macOS versions 10.15 and earlier, this option is
> +located under Dock instead. Note that this feature is unrelated to the
> +Emacs 'tab-bar-mode'.
Thanks. A minor nit: since NEWS is displayed in Outline mode, the
first sentence of any entry is its heading, and should not take more
than one line. If you have some details that make it longer, move
those details to the subsequent lines. For example:
** On macOS, Emacs now supports native tabs.
These tabs are available in macOS 10.12 and later.
...
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-06-06 6:14 ` Eli Zaretskii
@ 2021-06-06 6:48 ` Paul W. Rankin via Emacs development discussions.
2021-06-06 9:13 ` Alan Third
0 siblings, 1 reply; 44+ messages in thread
From: Paul W. Rankin via Emacs development discussions. @ 2021-06-06 6:48 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: Alan Third, emacs-devel
[-- Attachment #1: Type: text/plain, Size: 1104 bytes --]
> On 6 Jun 2021, at 4:14 pm, Eli Zaretskii <eliz@gnu.org> wrote:
>
>> Feedback-ID: 791:353:null:purelymail
>> Date: Sun, 6 Jun 2021 14:01:26 +1000
>> Cc: emacs-devel@gnu.org
>> From: "Paul W. Rankin" via "Emacs development discussions." <emacs-devel@gnu.org>
>>
>> ++++
>> +** On macOS, Emacs now supports native tabs (available in macOS 10.12
>> +and later). Native tabbing behavior is specified system-wide via
>> +System Preferences, under under General > 'Prefer tabs when opening
>> +documents'. In macOS versions 10.15 and earlier, this option is
>> +located under Dock instead. Note that this feature is unrelated to the
>> +Emacs 'tab-bar-mode'.
>
> Thanks. A minor nit: since NEWS is displayed in Outline mode, the
> first sentence of any entry is its heading, and should not take more
> than one line. If you have some details that make it longer, move
> those details to the subsequent lines. For example:
>
> ** On macOS, Emacs now supports native tabs.
> These tabs are available in macOS 10.12 and later.
> ...
No problemo. Revised patch attached.
[-- Attachment #2: 0001-src-nsterm.m-fix-window-tabbing-on-macOS.patch --]
[-- Type: application/octet-stream, Size: 2063 bytes --]
From b2a9842399c3eafccab1964764ad383a37f26b11 Mon Sep 17 00:00:00 2001
From: "Paul W. Rankin" <pwr@bydasein.com>
Date: Sat, 8 May 2021 19:09:59 +1000
Subject: [PATCH] src/nsterm.m: fix window tabbing on macOS
* src/nsterm.m: remove NSWindowTabbingModeDisallowed to respect
system-wide preferences
* etc/NEWS: add mention of native tab support in macOS and where
to specify system-wide setting
---
etc/NEWS | 8 ++++++++
src/nsterm.m | 8 --------
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/etc/NEWS b/etc/NEWS
index 32d7c4fe18..278cc5ea3c 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -3110,6 +3110,14 @@ The new variable 'xwidget-webkit-download-dir' says where to download to.
'module-file-suffix' now has the value ".dylib" on macOS, but the
".so" suffix is supported as well.
++++
+** On macOS, Emacs now supports native tabs (in macOS 10.12 and later).
+Native tabbing behavior is specified system-wide via System
+Preferences, under under General > 'Prefer tabs when opening
+documents'. In macOS versions 10.15 and earlier, this option is
+located under Dock instead. Note that this feature is unrelated to the
+Emacs 'tab-bar-mode'.
+
+++
** On MS-Windows, Emacs can now toggle the IME.
A new function 'w32-set-ime-open-status' can now be used to disable
diff --git a/src/nsterm.m b/src/nsterm.m
index bb20886ab1..5fd4885801 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -7628,14 +7628,6 @@ - (instancetype) initFrameFromEmacs: (struct frame *)f
selector:@selector (viewDidResize:)
name:NSViewFrameDidChangeNotification object:nil];
- /* macOS Sierra automatically enables tabbed windows. We can't
- allow this to be enabled until it's available on a Free system.
- Currently it only happens by accident and is buggy anyway. */
-#ifdef NS_IMPL_COCOA
- if ([win respondsToSelector: @selector(setTabbingMode:)])
- [win setTabbingMode: NSWindowTabbingModeDisallowed];
-#endif
-
ns_window_num++;
return self;
}
--
2.30.1
^ permalink raw reply related [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-06-06 4:09 ` Paul W. Rankin via Emacs development discussions.
@ 2021-06-06 7:43 ` martin rudalics
0 siblings, 0 replies; 44+ messages in thread
From: martin rudalics @ 2021-06-06 7:43 UTC (permalink / raw)
To: Paul W. Rankin, Alan Third; +Cc: Andrii Kolomoiets, emacs-devel
> Fwiw, most native macOS app windows can show/hide their toolbar, and
> when they do this, the window itself maintains overall size. However
> in Emacs when toggling tool-bar-mode the window grows/shrinks in
> overall size (i.e. maintains window lines).
>
> So I guess one of the questions here is whether to do these height
> calculation to maintain overall window size (and thus consistency with
> the OS) or to maintain visible window lines.
The value of `frame-inhibit-implied-resize' should answer that question.
martin
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-06-06 6:48 ` Paul W. Rankin via Emacs development discussions.
@ 2021-06-06 9:13 ` Alan Third
[not found] ` <8CCF969D-32AF-4542-8838-21DF4AA45523@yasufuku.dev>
0 siblings, 1 reply; 44+ messages in thread
From: Alan Third @ 2021-06-06 9:13 UTC (permalink / raw)
To: Paul W. Rankin; +Cc: Eli Zaretskii, emacs-devel
On Sun, Jun 06, 2021 at 04:48:32PM +1000, Paul W. Rankin wrote:
>
> No problemo. Revised patch attached.
Thanks. I've pushed it to master.
--
Alan Third
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
[not found] ` <8CCF969D-32AF-4542-8838-21DF4AA45523@yasufuku.dev>
@ 2021-06-06 11:36 ` Alan Third
2021-06-06 12:19 ` Paul W. Rankin via Emacs development discussions.
0 siblings, 1 reply; 44+ messages in thread
From: Alan Third @ 2021-06-06 11:36 UTC (permalink / raw)
To: Naofumi Yasufuku; +Cc: Eli Zaretskii, Paul W. Rankin, emacs-devel
On Sun, Jun 06, 2021 at 07:07:53PM +0900, Naofumi Yasufuku wrote:
>
> > On Jun 6, 2021, at 18:13, Alan Third <alan@idiocy.org> wrote:
> >
> > On Sun, Jun 06, 2021 at 04:48:32PM +1000, Paul W. Rankin wrote:
> >>
> >> No problemo. Revised patch attached.
> >
> > Thanks. I've pushed it to master.
>
> I found the following issues with this macOS native tab commit.
> Does anyone else encounter the same problems?
>
> 1) Frame height increases (even if frame-inhibit-implied-resize is t).
> attachment:
> 01_macOS-tab-issue-increases-height.gif
> 01_macOS-tab-issue-increases-height-2.gif … (sets frame-inhibit-implied-resize t)
Strangely I don't see this. The frame stays the same height...
> 2) New tab name is ‘emacs’ instead of buffer name.
> (even if C-x 5 C-f `find-file-other-frame’)
> attachment:
> 02_macOS-tab-issue-odd-tab-name.gif
It turns out that when multiple NSViews are put into one NSWindow
using tabs, AppKit doesn't bother telling all the views to update
themselves when the window changes, it appears to only message the
currently visible one. This is a problem.
The tab name issue can be sorted with this change:
modified src/nsfns.m
@@ -407,6 +407,9 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side.
if (! [[[view window] title] isEqualToString: str])
[[view window] setTitle: str];
+ if ([[view window] tab])
+ [[[view window] tab] setTitle: str];
+
if (STRINGP (f->icon_name))
str = [NSString stringWithLispString: f->icon_name];
but the overall window title ends up stuck with something nonsensical.
It's even when worse if you resize the frame manually with the mouse.
I don't know how to fix that.
> 3) Tabs are not shown in fullscreen.
> attachment:
> 03_macOS-tab-fullscreen-expected-textedit.gif. .. e.g. macOS Test Edit app
> 03_macOS-tab-issue-fullscreen-emacs.gif
Works as expected here. Since the window chrome isn't shown in
fullscreen mode, the tab bar isn't shown.
> 4) Doom modeline is not get focused when tab is closed.
> This could be a ‘doom-modeline’ problem.
> attachment:
> 04_macOS-tab-issue-doom-modeline-focus.gif
That looks like it's probably related to some old bug we have open
where in certain circumstances the frame isn't shown as being the
selected frame, despite being the key frame as far as AppKit is
concerned.
> 5) Native tabbing doesn’t work with (ns-transparent-titlebar . t) frame parameter.
> This could be a limitation of macOS, and expected behavior.
At a guess you'll need to set all frames to have a transparent
titlebar, but perhaps there's more to it than that...
--
Alan Third
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-06-06 11:36 ` Alan Third
@ 2021-06-06 12:19 ` Paul W. Rankin via Emacs development discussions.
2021-06-06 18:56 ` Alan Third
0 siblings, 1 reply; 44+ messages in thread
From: Paul W. Rankin via Emacs development discussions. @ 2021-06-06 12:19 UTC (permalink / raw)
To: Alan Third; +Cc: Naofumi Yasufuku, Eli Zaretskii, emacs-devel
> On 6 Jun 2021, at 9:36 pm, Alan Third <alan@idiocy.org> wrote:
>
> On Sun, Jun 06, 2021 at 07:07:53PM +0900, Naofumi Yasufuku wrote:
>>
>> I found the following issues with this macOS native tab commit.
>> Does anyone else encounter the same problems?
>>
>> 1) Frame height increases (even if frame-inhibit-implied-resize is t).
>> attachment:
>> 01_macOS-tab-issue-increases-height.gif
>> 01_macOS-tab-issue-increases-height-2.gif … (sets frame-inhibit-implied-resize t)
>
> Strangely I don't see this. The frame stays the same height...
Alan did you see my video of this in action?
https://f002.backblazeb2.com/file/pwr-share/emacs_nsterm.mov
>> 2) New tab name is ‘emacs’ instead of buffer name.
>> (even if C-x 5 C-f `find-file-other-frame’)
>> attachment:
>> 02_macOS-tab-issue-odd-tab-name.gif
>
> It turns out that when multiple NSViews are put into one NSWindow
> using tabs, AppKit doesn't bother telling all the views to update
> themselves when the window changes, it appears to only message the
> currently visible one. This is a problem.
>
> The tab name issue can be sorted with this change:
> ...
Interestingly this only happens with tool-bar-mode on. With eamcs -Q (tool-bar-mode 0) new frames/tabs get the correct name. Which makes me wonder if it's another case of some code somewhere interfering?
>> 3) Tabs are not shown in fullscreen.
>> attachment:
>> 03_macOS-tab-fullscreen-expected-textedit.gif. .. e.g. macOS Test Edit app
>> 03_macOS-tab-issue-fullscreen-emacs.gif
Yeah we're considering this a separate nice-to-have, right?
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-06-06 12:19 ` Paul W. Rankin via Emacs development discussions.
@ 2021-06-06 18:56 ` Alan Third
2021-06-07 0:27 ` Paul W. Rankin via Emacs development discussions.
0 siblings, 1 reply; 44+ messages in thread
From: Alan Third @ 2021-06-06 18:56 UTC (permalink / raw)
To: Paul W. Rankin; +Cc: Eli Zaretskii, emacs-devel, Naofumi Yasufuku
On Sun, Jun 06, 2021 at 10:19:57PM +1000, Paul W. Rankin wrote:
>
> > On 6 Jun 2021, at 9:36 pm, Alan Third <alan@idiocy.org> wrote:
> >
> > On Sun, Jun 06, 2021 at 07:07:53PM +0900, Naofumi Yasufuku wrote:
> >>
> >> I found the following issues with this macOS native tab commit.
> >> Does anyone else encounter the same problems?
> >>
> >> 1) Frame height increases (even if frame-inhibit-implied-resize is t).
> >> attachment:
> >> 01_macOS-tab-issue-increases-height.gif
> >> 01_macOS-tab-issue-increases-height-2.gif … (sets frame-inhibit-implied-resize t)
> >
> > Strangely I don't see this. The frame stays the same height...
>
> Alan did you see my video of this in action?
> https://f002.backblazeb2.com/file/pwr-share/emacs_nsterm.mov
Yeah, I was wrong, it is there and it's very annoying. I think there's
a mismatch between the calculation of the height of the content and
the actual height of the content. But if it's that I have no idea why
it disappears when the toolbar is turned off, because the calculation
should still be wrong.
> >> 2) New tab name is ‘emacs’ instead of buffer name.
> >> (even if C-x 5 C-f `find-file-other-frame’)
> >> attachment:
> >> 02_macOS-tab-issue-odd-tab-name.gif
> >
> > It turns out that when multiple NSViews are put into one NSWindow
> > using tabs, AppKit doesn't bother telling all the views to update
> > themselves when the window changes, it appears to only message the
> > currently visible one. This is a problem.
> >
> > The tab name issue can be sorted with this change:
> > ...
>
> Interestingly this only happens with tool-bar-mode on. With eamcs -Q
> (tool-bar-mode 0) new frames/tabs get the correct name. Which makes
> me wonder if it's another case of some code somewhere interfering?
They don't here. The non-selected frame ends up with the wrong name
whether the toolbar is on or off.
> >> 3) Tabs are not shown in fullscreen.
> >> attachment:
> >> 03_macOS-tab-fullscreen-expected-textedit.gif. .. e.g. macOS Test Edit app
> >> 03_macOS-tab-issue-fullscreen-emacs.gif
>
> Yeah we're considering this a separate nice-to-have, right?
Yeah, the tabs work exactly as I'd expect them to in fullscreen given
the way fullscreen works just now.
I have to say I've spent most of the afternoon on this and I'm no
closer to a solution to the height changing thing, so I'm tempted to
revert the commit, or put it behind a build flag or something until we
have a better solution.
--
Alan Third
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
[not found] <65f1-60bcfd80-157-23301c40@168015757>
@ 2021-06-07 0:11 ` Paul W. Rankin via Emacs development discussions.
2021-06-07 21:57 ` Alan Third
0 siblings, 1 reply; 44+ messages in thread
From: Paul W. Rankin via Emacs development discussions. @ 2021-06-07 0:11 UTC (permalink / raw)
To: Naofumi Yasufuku; +Cc: Alan Third, Eli Zaretskii, emacs-devel
> On 7 Jun 2021, at 2:52 am, naofumi@yasufuku.dev wrote:
>
> After this nsterm.m change for native tabs, I cannot realize the previous
> fullscreen frame behavior with macOS system preference 'Prefer tabs' settings.
>
>
> I think this native tabs feature should be choosable by user, as Alan said:
*It is* choosable by the user, via System Preferences. Please see the original discussion here:
> There are three positions someone could take:
>
> 1. wants tabs in all macOS apps including Emacs.app
> 2. does not want tabs in any macOS apps including Emacs.app
> 3. wants tabs in all other macOS except for Emacs.app
>
> Anyone in categories 1 and 2 will be covered by the option in System Preferences. Given that all I think we're doing here is removing old barrier code to have Emacs function with an OS's native window manager, anyone in the third category would be putting the onus on themselves to write code for additional functionality.
If you fall into the last category you cannot expect that the commit is reverted thus prohibiting every other person (including me) from using the native tabs just because you want some esoteric behaviour.
What should have been clear from the discussion is that achieving optimal native tab behaviour on macOS is going to be a *multi-step process*. This is just the first step. You are of course welcome to submit your own patches in the continuation of this process.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-06-06 18:56 ` Alan Third
@ 2021-06-07 0:27 ` Paul W. Rankin via Emacs development discussions.
2021-06-07 22:13 ` Alan Third
0 siblings, 1 reply; 44+ messages in thread
From: Paul W. Rankin via Emacs development discussions. @ 2021-06-07 0:27 UTC (permalink / raw)
To: Alan Third; +Cc: emacs-devel
> On 7 Jun 2021, at 4:56 am, Alan Third <alan@idiocy.org> wrote:
>
> On Sun, Jun 06, 2021 at 10:19:57PM +1000, Paul W. Rankin wrote:
>
>> Alan did you see my video of this in action?
>> https://f002.backblazeb2.com/file/pwr-share/emacs_nsterm.mov
>
> Yeah, I was wrong, it is there and it's very annoying. I think there's
> a mismatch between the calculation of the height of the content and
> the actual height of the content. But if it's that I have no idea why
> it disappears when the toolbar is turned off, because the calculation
> should still be wrong.
I've forgotten, what macOS version are you on? macOS 11 combines native toolbars in with the titlebar, so I suspect that the calculations Emacs is doing expect a separate titlebar and toolbar.
>> Yeah we're considering this a separate nice-to-have, right?
>
> Yeah, the tabs work exactly as I'd expect them to in fullscreen given
> the way fullscreen works just now.
>
> I have to say I've spent most of the afternoon on this and I'm no
> closer to a solution to the height changing thing, so I'm tempted to
> revert the commit, or put it behind a build flag or something until we
> have a better solution.
I do not think that is necessary. I'm going to go out on a limb here and speculate that the problem lies with the way Emacs is calculating its frame size, not with the OS window manager. The heart of it is, someone can open up Xcode and whip up a demo app with zero code that will function perfectly well with native tabs, it's not functionality that a program needs to implement, so whatever it is with Emacs that is interfering with or overriding that functionality has been added in between.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-06-07 0:11 ` Paul W. Rankin via Emacs development discussions.
@ 2021-06-07 21:57 ` Alan Third
0 siblings, 0 replies; 44+ messages in thread
From: Alan Third @ 2021-06-07 21:57 UTC (permalink / raw)
To: Paul W. Rankin; +Cc: Eli Zaretskii, emacs-devel, Naofumi Yasufuku
On Mon, Jun 07, 2021 at 10:11:17AM +1000, Paul W. Rankin wrote:
>
> > On 7 Jun 2021, at 2:52 am, naofumi@yasufuku.dev wrote:
> >
> > After this nsterm.m change for native tabs, I cannot realize the previous
> > fullscreen frame behavior with macOS system preference 'Prefer tabs' settings.
> >
> >
> > I think this native tabs feature should be choosable by user, as Alan said:
>
> *It is* choosable by the user, via System Preferences. Please see the original discussion here:
No, for some reason the fullscreen new-frame behaviour changes and
modifying the system settings doesn't revert it.
--
Alan Third
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-06-07 0:27 ` Paul W. Rankin via Emacs development discussions.
@ 2021-06-07 22:13 ` Alan Third
2021-06-08 7:32 ` Paul W. Rankin via Emacs development discussions.
2021-06-09 8:35 ` martin rudalics
0 siblings, 2 replies; 44+ messages in thread
From: Alan Third @ 2021-06-07 22:13 UTC (permalink / raw)
To: Paul W. Rankin; +Cc: emacs-devel
On Mon, Jun 07, 2021 at 10:27:42AM +1000, Paul W. Rankin wrote:
>
> > On 7 Jun 2021, at 4:56 am, Alan Third <alan@idiocy.org> wrote:
> >
> > On Sun, Jun 06, 2021 at 10:19:57PM +1000, Paul W. Rankin wrote:
> >
> >> Alan did you see my video of this in action?
> >> https://f002.backblazeb2.com/file/pwr-share/emacs_nsterm.mov
> >
> > Yeah, I was wrong, it is there and it's very annoying. I think there's
> > a mismatch between the calculation of the height of the content and
> > the actual height of the content. But if it's that I have no idea why
> > it disappears when the toolbar is turned off, because the calculation
> > should still be wrong.
>
> I've forgotten, what macOS version are you on? macOS 11 combines
> native toolbars in with the titlebar, so I suspect that the
> calculations Emacs is doing expect a separate titlebar and toolbar.
10.14
Emacs does calculate the titlebar and toolbar heights, and it's pretty
good at it, frankly, except that the toolbar height includes the
tab-bar height as well, and I can't see any way round that because
neither the toolbar, nor the tab-bar are accessible as views. I don't
think that really matters, though.
The only explanation I can come up with is that there's some strange
interaction between the frame size when it's created, when the toolbar
hasn't been created yet so has zero height, and then putting that
window into the tab group.
> >> Yeah we're considering this a separate nice-to-have, right?
> >
> > Yeah, the tabs work exactly as I'd expect them to in fullscreen given
> > the way fullscreen works just now.
> >
> > I have to say I've spent most of the afternoon on this and I'm no
> > closer to a solution to the height changing thing, so I'm tempted to
> > revert the commit, or put it behind a build flag or something until we
> > have a better solution.
>
> I do not think that is necessary. I'm going to go out on a limb here
> and speculate that the problem lies with the way Emacs is
> calculating its frame size, not with the OS window manager. The
> heart of it is, someone can open up Xcode and whip up a demo app
> with zero code that will function perfectly well with native tabs,
> it's not functionality that a program needs to implement, so
> whatever it is with Emacs that is interfering with or overriding
> that functionality has been added in between.
That goes without saying, but the fact of the matter is that we're
failing miserably to convince Emacs and the tab-bar to live together
in harmony. There's very little code in the ns*.m files that tries to
calculate the height of the frame, and nothing I do to it makes the
slightest bit of a difference to how the frame is drawn with tabs
enabled.
The fact that when you enable and disable the toolbar the frame size
changes is also something I can't explain because Appkit doesn't even
give Emacs a chance to set the frame size, it just does it and it even
animates the change for us, and lets us know it's been done after the
event. Perhaps we've got something set somewhere that says that the
NSView can't be resized by Appkit? I don't know, I'm not aware of any
setting like that.
Unfortunately I think the current naive enabling of the native tabs
isn't working and needs more work, so I'm going to revert the change.
I'm not saying we can't have the native tabs, just that they need to
be better behaved before we enable them.
Please keep working on this.
--
Alan Third
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-06-07 22:13 ` Alan Third
@ 2021-06-08 7:32 ` Paul W. Rankin via Emacs development discussions.
2021-06-08 8:59 ` Eli Zaretskii
2021-06-09 8:35 ` martin rudalics
1 sibling, 1 reply; 44+ messages in thread
From: Paul W. Rankin via Emacs development discussions. @ 2021-06-08 7:32 UTC (permalink / raw)
To: Alan Third; +Cc: emacs-devel
> On 8 Jun 2021, at 8:13 am, Alan Third <alan@idiocy.org> wrote:
>
> Unfortunately I think the current naive enabling of the native tabs
> isn't working and needs more work, so I'm going to revert the change.
> I'm not saying we can't have the native tabs, just that they need to
> be better behaved before we enable them.
This is lunacy. I'm out. Good luck.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-06-08 7:32 ` Paul W. Rankin via Emacs development discussions.
@ 2021-06-08 8:59 ` Eli Zaretskii
0 siblings, 0 replies; 44+ messages in thread
From: Eli Zaretskii @ 2021-06-08 8:59 UTC (permalink / raw)
To: Paul W. Rankin, Paul W. Rankin via Emacs development discussions.,
Alan Third
Cc: emacs-devel
On June 8, 2021 10:32:06 AM GMT+03:00, "Paul W. Rankin via Emacs development discussions." <emacs-devel@gnu.org> wrote:
>
> This is lunacy.
Not a nice thing to say. Please avoid such language here.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-06-07 22:13 ` Alan Third
2021-06-08 7:32 ` Paul W. Rankin via Emacs development discussions.
@ 2021-06-09 8:35 ` martin rudalics
2021-06-09 8:48 ` Alan Third
1 sibling, 1 reply; 44+ messages in thread
From: martin rudalics @ 2021-06-09 8:35 UTC (permalink / raw)
To: Alan Third, Paul W. Rankin, emacs-devel
> The fact that when you enable and disable the toolbar the frame size
> changes is also something I can't explain because Appkit doesn't even
> give Emacs a chance to set the frame size, it just does it and it even
> animates the change for us, and lets us know it's been done after the
> event. Perhaps we've got something set somewhere that says that the
> NSView can't be resized by Appkit? I don't know, I'm not aware of any
> setting like that.
If you just used
adjust_frame_size (f, -1, -1, 5, false, Qtool_bar_lines);
in ns_set_tool_bar_lines would that change anything?
martin
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-06-09 8:35 ` martin rudalics
@ 2021-06-09 8:48 ` Alan Third
2021-06-09 12:20 ` martin rudalics
0 siblings, 1 reply; 44+ messages in thread
From: Alan Third @ 2021-06-09 8:48 UTC (permalink / raw)
To: martin rudalics; +Cc: emacs-devel
On Wed, Jun 09, 2021 at 10:35:07AM +0200, martin rudalics wrote:
> > The fact that when you enable and disable the toolbar the frame size
> > changes is also something I can't explain because Appkit doesn't even
> > give Emacs a chance to set the frame size, it just does it and it even
> > animates the change for us, and lets us know it's been done after the
> > event. Perhaps we've got something set somewhere that says that the
> > NSView can't be resized by Appkit? I don't know, I'm not aware of any
> > setting like that.
>
> If you just used
>
> adjust_frame_size (f, -1, -1, 5, false, Qtool_bar_lines);
>
> in ns_set_tool_bar_lines would that change anything?
It doesn't make any difference to the frame resizing, but does make
the window display as a tiny 2x2 character block in the top left of
the frame, so I'm not sure it's doing what you intended.
--
Alan Third
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-06-09 8:48 ` Alan Third
@ 2021-06-09 12:20 ` martin rudalics
2021-06-09 12:29 ` Alan Third
0 siblings, 1 reply; 44+ messages in thread
From: martin rudalics @ 2021-06-09 12:20 UTC (permalink / raw)
To: Alan Third, emacs-devel
>> If you just used
>>
>> adjust_frame_size (f, -1, -1, 5, false, Qtool_bar_lines);
>>
>> in ns_set_tool_bar_lines would that change anything?
>
> It doesn't make any difference to the frame resizing, but does make
> the window display as a tiny 2x2 character block in the top left of
> the frame, so I'm not sure it's doing what you intended.
It's not. What happens when you omit that call entirely?
martin
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: src/nsterm.m: fix window tabbing on macOS
2021-06-09 12:20 ` martin rudalics
@ 2021-06-09 12:29 ` Alan Third
0 siblings, 0 replies; 44+ messages in thread
From: Alan Third @ 2021-06-09 12:29 UTC (permalink / raw)
To: martin rudalics; +Cc: emacs-devel
On Wed, Jun 09, 2021 at 02:20:34PM +0200, martin rudalics wrote:
> >> If you just used
> >>
> >> adjust_frame_size (f, -1, -1, 5, false, Qtool_bar_lines);
> >>
> >> in ns_set_tool_bar_lines would that change anything?
> >
> > It doesn't make any difference to the frame resizing, but does make
> > the window display as a tiny 2x2 character block in the top left of
> > the frame, so I'm not sure it's doing what you intended.
>
> It's not. What happens when you omit that call entirely?
No change, still resizes when disabling/enabling the toolbar.
Like I said before, though, as far as I can tell Emacs isn't even
informed about the frame resizing until it's already done, so I don't
think we can change it through Emacs's core, I think it has to be a
change in the NS window or view setup.
I actually suspect that the apps that don't resize when the toolbar is
enabled or disabled are probably using automatic layout of their
contents, which we can't do.
--
Alan Third
^ permalink raw reply [flat|nested] 44+ messages in thread
end of thread, other threads:[~2021-06-09 12:29 UTC | newest]
Thread overview: 44+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-05-08 9:26 src/nsterm.m: fix window tabbing on macOS Paul W. Rankin via Emacs development discussions.
2021-05-08 11:21 ` Alan Third
2021-05-08 12:27 ` Paul W. Rankin via Emacs development discussions.
2021-05-08 12:35 ` Paul W. Rankin via Emacs development discussions.
2021-05-10 19:53 ` Alan Third
2021-05-11 5:45 ` Paul W. Rankin via Emacs development discussions.
2021-05-11 19:20 ` chad
2021-05-12 9:47 ` Paul W. Rankin via Emacs development discussions.
2021-05-12 21:23 ` Alan Third
2021-05-13 5:46 ` Paul W. Rankin via Emacs development discussions.
2021-05-13 21:05 ` Alan Third
2021-05-16 9:16 ` Paul W. Rankin via Emacs development discussions.
2021-05-26 19:56 ` Alan Third
2021-05-27 11:06 ` Andrii Kolomoiets
2021-05-28 8:26 ` martin rudalics
2021-05-28 8:28 ` Paul W. Rankin via Emacs development discussions.
2021-05-28 8:36 ` martin rudalics
2021-05-28 8:54 ` Alan Third
2021-06-06 4:09 ` Paul W. Rankin via Emacs development discussions.
2021-06-06 7:43 ` martin rudalics
2021-05-28 9:07 ` Andrii Kolomoiets
2021-05-28 9:21 ` martin rudalics
2021-05-28 9:37 ` Paul W. Rankin via Emacs development discussions.
2021-05-28 9:51 ` martin rudalics
2021-05-28 14:33 ` Paul W. Rankin via Emacs development discussions.
2021-05-28 20:52 ` Andrii Kolomoiets
2021-06-05 20:58 ` Alan Third
2021-06-06 4:01 ` Paul W. Rankin via Emacs development discussions.
2021-06-06 6:14 ` Eli Zaretskii
2021-06-06 6:48 ` Paul W. Rankin via Emacs development discussions.
2021-06-06 9:13 ` Alan Third
[not found] ` <8CCF969D-32AF-4542-8838-21DF4AA45523@yasufuku.dev>
2021-06-06 11:36 ` Alan Third
2021-06-06 12:19 ` Paul W. Rankin via Emacs development discussions.
2021-06-06 18:56 ` Alan Third
2021-06-07 0:27 ` Paul W. Rankin via Emacs development discussions.
2021-06-07 22:13 ` Alan Third
2021-06-08 7:32 ` Paul W. Rankin via Emacs development discussions.
2021-06-08 8:59 ` Eli Zaretskii
2021-06-09 8:35 ` martin rudalics
2021-06-09 8:48 ` Alan Third
2021-06-09 12:20 ` martin rudalics
2021-06-09 12:29 ` Alan Third
[not found] <65f1-60bcfd80-157-23301c40@168015757>
2021-06-07 0:11 ` Paul W. Rankin via Emacs development discussions.
2021-06-07 21:57 ` Alan Third
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).