cocoa - patch - support Alt key in cocoa

git-svn-id: trunk@52523 -
This commit is contained in:
sekelsenmat 2016-06-19 20:19:10 +00:00
parent e99e9b73b9
commit b2399e3114

View File

@ -334,6 +334,8 @@ var
IsSysKey := (Event.modifierFlags and NSCommandKeyMask) <> 0;
KeyData := (Ord(Event.isARepeat) + 1) or Event.keyCode shl 16;
if (Event.modifierFlags and NSAlternateKeyMask) <> 0 then
KeyData := KeyData or $20000000; // So that MsgKeyDataToShiftState recognizes Alt key, see bug 30129
KeyCode := Event.keyCode;
//non-printable keys (see mackeycodes.inc)
@ -617,6 +619,8 @@ var
end;
function HandleFlagsChanged: Boolean;
const
cModifiersOfInterest: NSUInteger = (NSControlKeyMask or NSShiftKeyMask or NSAlphaShiftKeyMask or NSAlternateKeyMask or NSCommandKeyMask);
var
CurMod, Diff: NSUInteger;
begin
@ -624,7 +628,7 @@ var
SendChar := False;
CurMod := Event.modifierFlags;
//see what changed. we only care of bits 16 through 20
Diff := (PrevKeyModifiers xor CurMod) and $1F0000;
Diff := (PrevKeyModifiers xor CurMod) and cModifiersOfInterest;
case Diff of
0 : Exit; //nothing (that we cared of) changed
@ -845,7 +849,7 @@ begin
FillChar(Msg, SizeOf(Msg), #0);
Msg.Msg := LM_MOUSEMOVE;
Msg.Keys := CocoaModifiersToKeyState(Event.modifierFlags) or CocoaPressedMouseButtonsToKeyState(Event.pressedMouseButtons);
Msg.Keys := CocoaModifiersToKeyState(Event.modifierFlags) or CocoaPressedMouseButtonsToKeyState(NSEvent.pressedMouseButtons);
Msg.XPos := mp.X;
Msg.YPos := mp.Y;