[Vimode] Fix Macro Completion Replay
This patch makes it so that completions are properly replayed when macros are replayed.
Ctrl-Space
input events are caught by KateViewInternal::eventFilter
as a QEvent::ShortcutOverride
(and not as a QEvent::KeyPress
) so it never reaches InsertVimode::handleKeyPress
which is where the completion replay is triggered.
This is probably the wrong approach/layer for the fix, but so far I haven't found a better way.
From the debug messages I sprinkled to the key event handling path, it seems that the QApplication::sendEvent
from InputModeManager::feedKeyPresses
sends two events with the same keys, the first one as QEvent::ShortcutOverride
and the second as QEvent::KeyPress
. For some reason, only the first event is sent for Ctrl-Space
. I initially thought that it was because it was a valid shortcut (for starting completion), but two events are sent for other valid shortcuts (e.g. Ctrl-a
).