More functionality now shared between ATSUI and Cocoa renderers. (Some modifications by Bjorn Winckler.)
Changing the font size up/down while the cursor was on the command line would cause the cursor to jump away from the cmdline. This is no longer the case. Also fixes a similar problem when showing/hiding the toolbar by clicking the "pill button".
Since the backend now pops off all input events at once whenever it tends to the run-loop, it is no longer necessary to coalesce scroll wheel events. In fact, without coalescing the scroll wheel (or track pad) feels a lot smoother.
It is no longer necessary to exit and re-enter fullscreen to see changes to the "background" setting in 'fopt'.
Scrolling now works e.g. after pressing 'f' in normal mode (previously the scrollbar moved, but the window content did not scroll).
All services open a new window by default, unless new files are set to open in the current window in the General preference pane.
The "New Document Here" service will create a blank document in the currently selected directory. If new files are set to open in the current window, then the blank document opens in a new tab in the topmost window, otherwise a new window is opened.
In other words, Cmd-. is synonymous with Ctrl-C. The former is standard for Mac apps whereas the latter is standard for Vim. Incidentally, Cmd-. may thus be used as a substitute for Esc to exit insert mode.
This reduces the startup time by almost 1 second when starting MacVim from Terminal.
Since gui_mch_update() is called so frequently we only check for interrupts at most once per second.
By making gui_mch_update() a no-op the frame-rate is dramatically increased in certain situations. The downside is that it is no longer possible to interrupt Vim with Ctrl-C when it is busy processing.
Don't flush on gui_mch_flush(); instead only flush when forced (happens e.g. if Vim is about to take a nap) or just before waiting for new input. This reduces screen flicker dramatically in certain cases.
The backend keeps at most one copy of each message on the input queue. This makes MacVim feel a lot more responsive e.g. when scrolling the screen. It used to be that holding down 'j' to scroll and then releasing 'j' would cause the screen to keep scrolling for a while even after the release.
This way we avoid doing the initializations twice and cut down a bit on the startup time when starting MacVim from Terminal.