- #Enable mouse scrolling in vim mac os x for mac
- #Enable mouse scrolling in vim mac os x Patch
- #Enable mouse scrolling in vim mac os x code
Using Carbon Events (especially the standard event handlers) should make the code shorter.īefore porting to Carbon events, gui_mac.c is about 6500 lines (with gui tab pages).
#Enable mouse scrolling in vim mac os x for mac
Vim for Mac still uses the seriously deprecated WaitNextEvent() api. SetEventParameter(event, kEventParamDimensions, typeQDPoint, * ideal height is as high as we can get */ P.h = Columns * gui.char_width + gui_get_base_width() GetEventParameter(event, kEventParamAttributes, typeUInt32, NULL, Static OSStatus onWindow(EventHandlerCallRef handler, Option-Clicking moves the window into the upper left window, as it turns out. The standard window handler does the rest. You only need to implement an kEventWindowGetIdealSize handler and return the standard state size of your window. But, hey, we're used to that, aren't we?įortunately, you can get around writing your own kEventWindowZoom handler most of the time. Try Option-Clicking the zoom box in several apps and see what happens for instance. However, implementing the kEventWindowZoom yourself is a bad idea, because no one really knows what this button should do. If you want to change it, you are advised to write a listener to the kEventWindowZoom event. However, this is exactly what Carbon's standard window handler does.
#Enable mouse scrolling in vim mac os x Patch
The latest version of the patch can be found here.ĭo you know what the green circle in the title bar of your windows does? What happens if you option-click it? You're not alone.Īccording to Apple's HIG, it toggles between a user state and a standard state - it doesn't maximize your window - and the HIG explicitely advice against maximizing your window. Notes: Keyboard layout files this seems to be what I'm looking for Is there a way to find out which modifiers are necessary for a given character? This depends on the keyboard layout of course. Generally, modifiers required to generate a key (shift is required for uppercase characters or * etc, alt is required for ç (at least on my keyboard), etc) should not be sent to vim. Unicode characters (ä etc.) should work (they are broken because of the Shift-Tab patch at the moment).Shift-Space has to work (the code that removes shift from chars like (, *, + etc.Shift-Tab is a special key and has to be send as such. simplify_key() seems to mess up the shift-tab keys. Shift-Tab should give previous match in command line completion (found by Bram Molenaar as well).Seems to be fixed by the patch that fixed the previous problem as well. C-F and C-B should work in normal mode (regression found by Bram Molenaar).Fix: Don't send CTRL modifier for keys with ASCII code < 32 Should work (insert mode and normal mode) (regression found by Kyle Wheeler). C-V S-Left should insert "" in insert mode.
I have to test the following keys with each version of the patch to make sure the regressions stay fixed: Of couse, this patch causes a few regressions (which I'm trying to fix).
Mac Vims Carbon keyboard handling code doesn't apply modifiers (like shift) to special keys like the arrow keys. Update: This patch got accepted into the official vim source (patch 7.0.138).