unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Alan Third <alan@idiocy.org>
To: George Plymale II <georgedp@orbitalimpact.com>
Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org
Subject: Re: Should this package be included into the NS port?
Date: Fri, 18 May 2018 20:36:32 +0100	[thread overview]
Message-ID: <20180518193632.GA31241@breton.holly.idiocy.org> (raw)
In-Reply-To: <m0tvr89uyz.fsf@georgedp.developer.orbitalimpact.com>

On Tue, May 15, 2018 at 10:48:20PM -0400, George Plymale II wrote:
> Alan Third <alan@idiocy.org> writes:
> 
> > It might be worth investigating exactly why the NS port can’t open a
> > new frame in this situation, but I’ve not got round to it yet. It
> > seems rather strange to me.
> 
> Yes, I agree. I would also very much like to know the cause of this bug,
> but alas I'm a bit strapped for time as well. I've done some casual,
> fruitless experimentation with it in the past yet I've gotten no closer
> to the cause. If anyone would be willing to take up the torch for this
> and do some detective work, that would be awesome.

I’ve had a dig around and it looks as though emacsclient is able to
open a new GUI frame, so it’s not quite as dire as I’d previously
thought.

There are two problems, though.

* Application Menu

When the last NS frame is deleted the menus aren’t updated, so I think
they’ll be the menus as defined for the last frame. They should
probably be cut right back to just the ‘Emacs’ menu, and perhaps
‘help’.

(NOTE: The menus are a bit of a mess, Nick Helm and I have been
discussing them in bug#31371.)

* Dock Menu

This has a ‘new frame’ option but just plain doesn’t work. I think the
problem is the way it’s trying to create a new frame:

    - (void)newFrame: (id)sender
    {
      NSTRACE ("[EmacsApp newFrame:]");
    
      struct frame *emacsframe = SELECTED_FRAME ();
      NSEvent *theEvent = [NSApp currentEvent];
    
      if (!emacs_event)
        return;
      emacs_event->kind = NS_NONKEY_EVENT;
      emacs_event->code = KEY_NS_NEW_FRAME;
      emacs_event->modifiers = 0;
      EV_TRAILER (theEvent);
    }

This seems to rely on there being an existing NS frame, but we’ve
deleted the last one. I assume if we were clever we’d be able to use
the, still open, terminal frame.

Is there some other way of creating a new GUI frame? I assume there
must be since emacsclient can do it.

* ALSO!

Closing the terminal frame when there are no GUI frames left results
in a crash. I guess Emacs doesn’t think it needs to clean up the NS
stuff or something? I don’t really know what’s going on there.
-- 
Alan Third



  reply	other threads:[~2018-05-18 19:36 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-15  5:19 Should this package be included into the NS port? George Plymale II
2018-05-15 18:25 ` Stefan Monnier
2018-05-15 18:36   ` Alan Third
2018-05-16  2:48     ` George Plymale II
2018-05-18 19:36       ` Alan Third [this message]
2018-05-18 21:21         ` George Plymale II
2018-05-19  4:57           ` Nick Helm
2018-05-19 15:49             ` George Plymale II
2018-05-23  5:22               ` Nick Helm
2018-05-23 19:29                 ` George Plymale II
2018-05-19  9:50           ` Alan Third
2018-05-19 16:06             ` George Plymale II
2018-05-19 18:33             ` Stefan Monnier
2018-05-22  1:42               ` George Plymale II
2018-05-22  1:48                 ` Van L
2018-05-22 19:04                   ` Alan Third
2018-05-23  2:30                     ` Off Topic (was: Should this package be included into the NS port?) Van L
2018-05-23 20:43                       ` Alan Third
2018-05-24  1:27                         ` emacs-26.1-rc1: ./configure (was: Off Topic) Van L
2018-05-24  8:55                           ` emacs-26.1-rc1: ./configure Robert Pluim
2018-05-24 10:51                             ` Van L
2018-05-24 11:51                               ` Robert Pluim
2018-05-24 11:57                                 ` Van L
2018-05-24 23:47                               ` Van L
2018-05-22 19:15                 ` Should this package be included into the NS port? Alan Third
2018-05-22 20:09                   ` George Plymale II
2018-05-19  4:42         ` Nick Helm
2018-05-19 10:33           ` Alan Third
2018-05-19 11:51             ` Philipp Stephani
2018-05-19 16:52             ` George Plymale II
2018-05-23  4:55             ` Nick Helm
2018-05-23  5:11             ` Nick Helm
2018-05-23 15:26               ` Eli Zaretskii
2018-05-23 16:37                 ` Stefan Monnier
2018-05-23 17:23                   ` Eli Zaretskii
2018-05-23 21:21                 ` Alan Third
2018-05-24 16:37                   ` Eli Zaretskii
2018-05-24 17:46                     ` Philipp Stephani
2018-05-24 17:51                       ` Philipp Stephani
2018-05-24 18:14                       ` Eli Zaretskii
2018-05-16  2:44   ` George Plymale II
2018-05-17 22:13 ` George Plymale II
2018-05-18 18:50   ` Alan Third
2018-05-18 20:40     ` George Plymale II
2018-05-19  8:31     ` Michael Albinus
2018-05-19  4:29 ` Nick Helm
2018-05-19 15:38   ` George Plymale II
2018-05-29 21:29 ` George Plymale II
2018-05-29 21:42   ` Alan Third
2018-05-29 23:40     ` George Plymale II
2018-05-31 20:40       ` Alan Third
2018-06-01  1:58         ` Stefan Monnier
2018-06-02 18:31           ` George Plymale II
2018-06-02 19:39             ` Stefan Monnier
2018-06-02 20:11               ` Alan Third
2018-06-03  2:25                 ` Stefan Monnier
2018-06-02 18:26         ` George Plymale II
2018-06-02 16:45       ` Ryan Thompson
2018-06-02 17:22         ` Stefan Monnier
2018-06-02 18:56         ` George Plymale II

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180518193632.GA31241@breton.holly.idiocy.org \
    --to=alan@idiocy.org \
    --cc=emacs-devel@gnu.org \
    --cc=georgedp@orbitalimpact.com \
    --cc=monnier@iro.umontreal.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).