mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-30 23:02:47 +02:00
cocoa: redo LM_MOUSEMOVE message
git-svn-id: trunk@34626 -
This commit is contained in:
parent
e31d2b8fa1
commit
7b147d1d99
@ -42,7 +42,7 @@ type
|
||||
// mouse events
|
||||
function MouseUpDownEvent(Event: NSEvent): Boolean;
|
||||
procedure MouseClick;
|
||||
procedure MouseMove(x,y: Integer);
|
||||
function MouseMove(Event: NSEvent): Boolean;
|
||||
function KeyEvent(Event: NSEvent): Boolean;
|
||||
// size,pos events
|
||||
procedure frameDidChange;
|
||||
@ -778,23 +778,15 @@ begin
|
||||
end;
|
||||
|
||||
procedure TCocoaWindow.mouseDragged(event: NSEvent);
|
||||
var
|
||||
mp: NSPoint;
|
||||
begin
|
||||
mp := event.locationInWindow;
|
||||
mp.y := NSView(event.window.contentView).bounds.size.height - mp.y;
|
||||
callback.MouseMove(round(mp.x), round(mp.y));
|
||||
inherited mouseMoved(event);
|
||||
if not callback.MouseMove(event) then
|
||||
inherited mouseDragged(event);
|
||||
end;
|
||||
|
||||
procedure TCocoaWindow.mouseMoved(event: NSEvent);
|
||||
var
|
||||
mp: NSPoint;
|
||||
begin
|
||||
mp := event.locationInWindow;
|
||||
mp.y := NSView(event.window.contentView).bounds.size.height - mp.y;
|
||||
callback.MouseMove(round(mp.x), round(mp.y));
|
||||
inherited mouseMoved(event);
|
||||
if not callback.MouseMove(event) then
|
||||
inherited mouseMoved(event);
|
||||
end;
|
||||
|
||||
procedure TCocoaWindow.sendEvent(event: NSEvent);
|
||||
|
@ -44,7 +44,7 @@ type
|
||||
function MouseUpDownEvent(Event: NSEvent): Boolean; virtual;
|
||||
function KeyEvent(Event: NSEvent): Boolean; virtual;
|
||||
procedure MouseClick; virtual;
|
||||
procedure MouseMove(x,y: Integer); virtual;
|
||||
function MouseMove(Event: NSEvent): Boolean; virtual;
|
||||
procedure frameDidChange; virtual;
|
||||
procedure boundsDidChange; virtual;
|
||||
procedure BecomeFirstResponder; virtual;
|
||||
@ -694,9 +694,27 @@ begin
|
||||
LCLSendClickedMsg(Target);
|
||||
end;
|
||||
|
||||
procedure TLCLCommonCallback.MouseMove(x, y: Integer);
|
||||
function TLCLCommonCallback.MouseMove(Event: NSEvent): Boolean;
|
||||
var
|
||||
Msg: TLMMouseMove;
|
||||
MousePos: NSPoint;
|
||||
begin
|
||||
LCLSendMouseMoveMsg(Target, x,y, []);
|
||||
Result := False; // allow cocoa to handle message
|
||||
|
||||
if Assigned(Target) and (not (csDesigning in Target.ComponentState) and not Owner.lclIsEnabled) then
|
||||
Exit;
|
||||
|
||||
MousePos := Event.locationInWindow;
|
||||
OffsetMousePos(MousePos);
|
||||
|
||||
FillChar(Msg, SizeOf(Msg), #0);
|
||||
Msg.Msg := LM_MOUSEMOVE;
|
||||
Msg.Keys := CocoaModifiersToKeyState(Event.modifierFlags) or CocoaPressedMouseButtonsToKeyState(Event.pressedMouseButtons);
|
||||
Msg.XPos := Round(MousePos.X);
|
||||
Msg.YPos := Round(MousePos.Y);
|
||||
|
||||
NotifyApplicationUserInput(Msg.Msg);
|
||||
Result := DeliverMessage(Msg) <> 0;
|
||||
end;
|
||||
|
||||
procedure TLCLCommonCallback.frameDidChange;
|
||||
|
Loading…
Reference in New Issue
Block a user