1430Re: Mac-VIM doesn't cooperate with Finder
- Feb 6, 2004
> The .vimrc is sourced before the GUI window is opened (because it mayI will have a look at that and see if I can adopt this for Mac OS X also.
> specify how it is to be opened). Errors that occur here should be
> reported in a separate popup window, unless there is a terminal where
> they can be seen. There already is code to collect the messages and
> show them in a popup window (for Win32).
> This delay was added long ago, I think for the X11 GUI. It avoids thatThe problem here is, that Mac OS X behaves completely different from X11
> the GUI window appears and is then redrawn, that causes a bit of
> flashing and looks ugly. I can't say I understand why a short delay
> would cause trouble for the Mac GUI, thus if this helps there should be
> an explanation why it needs to be different for the Mac.
and Windows based systems when starting an GUI Application with some
files which have been dropped on the application icon (or that have been
double clicked). Instead of adding arguments to the command line the app
will be started and send AppleEvent messages to open these files. So
when you drag a file onto the Vim app, it starts without any arguments.
As soon as you call gui_wait_for_chars(), gui_mac.c will call
WaitNextEvent(), which will receive the AppleEvent that tells Vim to
open the dropped file(s). The callback will collect the files and send
them to Vim via handle_drop(). This again results in output of the
fileinfo, which sets msg_didany. msg_didany is resposible for the "hit
ENTER" prompt further down in main.c (I can't lookup actual line numbers
and the correct function names at the moment). If you skip the GUI
delay, this event will not be received before the wait_enter() call and
thus will not force a "hit ENTER" prompt. The AppleEvent will be handled
like an ordinary file drop, which is ok.
Maybe a comment stating that the Mac GUI would receive a file drop which
disturbs the output slightly would be sufficient?
- << Previous post in topic Next post in topic >>