mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-26 20:04:00 +02:00
cocoa - patch #30129 - support Alt key in cocoa
git-svn-id: trunk@52523 -
This commit is contained in:
parent
e99e9b73b9
commit
b2399e3114
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user