vimode: fix swapped modifiers and arrow keys in insert/replace modes on macOS
On macOS, Qt uses the Qt::ControlModifier
for the ⌘ Command
keys and the Qt::MetaModifier
for the ⌃ Control
keys, so these need to be swapped to make them work. In addition to that, the arrow keys have the Qt::KeypadModifier
set. This behaviour is documented in the Qt::KeyboardModifier
enum.
This is one issue on macOS builds that was annoying me enough to look a bit deeper into it :-) I hope the fix is good enough, I'm not sure where to nicely place the #ifdef
s though (some commonly used header file would be nice, maybe src/vimode/definitions.h
? Please let me know what you think).
I ran the vimode_*
unit tests on both my MacBook and some Linux machine, they currently fail because of some assertion introduced with another recent change of the status bar handling. Commenting out that assertion lets the unit tests run through with the same failures on both machines (except for the vimode_completion
one, there I get 2 passed, 379 failed, 0 skipped, 0 blacklisted, 463ms
. I guess this needs some more work in general to work nicely on macOS).