snapshot-41
object 128a2b17bf4f9b1ae0fbd0085d0ed318bfa641a0
authorBjorn Winckler <bjorn.winckler@gmail.com>
Sat, 10 Jan 2009 19:57:47 +0000 (20:57 +0100)
SIGCHLD handling, faster startup, etc.

The previous snapshot had some problems with the automatic updating
(Sparkle) but I am hoping that this is fixed now.  From what I can tell
the problem was that Sparkle was trying to wait for some child process
to exit but failed since we had messed around with the signal handler
for SIGCHLD.  Anyway, MacVim will now wait for its children instead of
ignoring them -- hopefully this will not cause any new problems!

While working on the above problem I took the opportunity to clean up
some related code.  One thing I noticed while doing this was that it can
take a long time (500 ms or so) to load the default font (DejaVu Sans
Mono) so I changed things around a bit so that only the MacVim process
loads the default font on startup (each Vim process used to do this as
well) and this has resulted in faster startup times.  Opening a new
window is roughly twice as fast on my Mac compared with snap 40.  (It
seems this change is particularly noticeable on faster machines.)

If you're not using the default font, or if it is already installed on
your machine then I recommend you disable loading of the default font
altogether since this will make the MacVim app itself start faster (i.e.
the first time you type 'mvim', or when you start MacVim from the
Finder).  I've added a user default to do this; enter this line in
Terminal:

  default write org.vim.MacVim MMLoadDefaultFont 0

Some of the changes I made while refactoring deal with how processes are
terminated and may break stuff -- please put this snapshot properly
through its paces, it is not unlikely that I've missed something.

Here's the list of changes since snapshot 40:

  - The menu bar behaves better when using full-screen and switching
    Spaces (Nico Weber)
  - Don't switch Spaces when using "mvim" on one Space and a MacVim
    window is open on another Space
  - Add user default to toggle the "add tab" button on the tabline (to
    disable, enter "defaults org.vim.MacVim MMShowAddTabButton 0" in
    Terminal)
  - Avoid the "Press ENTER..." prompt when dragging and dropping
  - Faster startup (and shutdown, but you're not likely to notice that
    unless you are me ;-)
  - Automatic updating works again (?)
  - Possible to interrupt external commands (e.g. you can Ctrl-C during
    a lenghty :grep now)
  - The output from external commands is displayed "interactively" (i.e.
    you don't have to wait for the command to finish before any output
    is drawn; try ":!ls -l /usr/lib" and compare with snap 40 to see
    what I mean)
  - Cmd-. sends SIGINT (so that if a Vim process is stuck you should
    always be able to interrupt it with Cmd-. even if Ctrl-C doesn't work)
  - Fix crashing bug: e.g. with snap 40 if you go to the src/ folder of
    Vim and type ":grep a *.c" MacVim would crash
  - Toggle loading of default font with user default MMLoadDefaultFont