I noticed that view-lossage shows two <C-tab> for every time I press it. In nsterm.m it specifically checks for control-tab and references
http://osdir.com/ml/editors.vim.mac/2007-10/msg00141.html
Which in turn references
https://bugzilla.mozilla.org/show_bug.cgi?id=374076#c12
Which makes me think that in Mac OS 10.4 the control-tab keyDown event isn’t sent, but in 10.5 it is. Or at the very least in the latest version of 10.5 (I’m running 10.5.7) it sends a keyDown event.
I have implemented what I think is a very simple fix (though it is probably not ideal). It sets a flag if it recieves a C-tag keyDown, and if so does not send the corresponging keyUp. I like this because then it works on keyDown like everything else if possible, but if not it should work on keyUp. I don’t have the facilities to test the latter assumption.
Also the patch almost certainly is less efficient than it could be. For example it sets flags and code twice (I believe) to the same thing, but I’m not really familiar enough with the code to want to risk changing that (and it’s only for the Cocoa port as well). I believe it should be correct at least.
-Ivan Andrus