lcl: fix Linux compilation after r51821 #be5322bd6d, Issue #29766

git-svn-id: trunk@51822 -
This commit is contained in:
ondrej 2016-03-04 06:44:48 +00:00
parent be5322bd6d
commit 23f31975f0
4 changed files with 8 additions and 5 deletions

View File

@ -35,7 +35,7 @@ interface
{$ENDIF} {$ENDIF}
uses uses
Classes, SysUtils, TypInfo, types, LCLStrConsts, LCLType, AvgLvlTree, Classes, SysUtils, TypInfo, Types, LCLStrConsts, LCLType, AvgLvlTree,
LCLProc, GraphType, Graphics, LMessages, LCLIntf, InterfaceBase, ImgList, LCLProc, GraphType, Graphics, LMessages, LCLIntf, InterfaceBase, ImgList,
PropertyStorage, Menus, ActnList, LCLClasses, LResources; PropertyStorage, Menus, ActnList, LCLClasses, LResources;

View File

@ -1765,7 +1765,7 @@ end;
function TControl.GetMousePosFromMessage(const MessageMousePos: TSmallPoint function TControl.GetMousePosFromMessage(const MessageMousePos: TSmallPoint
): TPoint; ): TPoint;
begin begin
if (Width>High(SmallInt)) or (Height>High(SmallInt)) then if (Width>32767) or (Height>32767) then
begin begin
GetCursorPos(Result); GetCursorPos(Result);
Result := ScreenToClient(Result); Result := ScreenToClient(Result);
@ -2682,8 +2682,11 @@ procedure TControl.WMMouseWheel(var Message: TLMMouseEvent);
var var
MousePos: TPoint; MousePos: TPoint;
lState: TShiftState; lState: TShiftState;
SP: TSmallPoint;
begin begin
MousePos := GetMousePosFromMessage(SmallPoint(Message.X, Message.Y)); SP.X := Message.X; // cannot use SmallPoint() here due to FPC inconsistency in Classes.TSmallPoint<>Types.TSmallPoint on Linux
SP.Y := Message.Y;
MousePos := GetMousePosFromMessage(SP);
lState := Message.State - [ssCaps, ssNum, ssScroll]; // Remove unreliable states, see http://bugs.freepascal.org/view.php?id=20065 lState := Message.State - [ssCaps, ssNum, ssScroll]; // Remove unreliable states, see http://bugs.freepascal.org/view.php?id=20065
if DoMouseWheel(lState, Message.WheelDelta, MousePos) then if DoMouseWheel(lState, Message.WheelDelta, MousePos) then

View File

@ -50,7 +50,7 @@ uses
{$IFDEF Windows}Windows, ShellApi,{$ENDIF} {$IFDEF Windows}Windows, ShellApi,{$ENDIF}
{$IFDEF UNIX}Unix, {$ENDIF} {$IFDEF UNIX}Unix, {$ENDIF}
{$IFDEF Darwin}MacOSAll, CocoaAll,{$ENDIF} {$IFDEF Darwin}MacOSAll, CocoaAll,{$ENDIF}
Types, Math, Classes, SysUtils, LCLType, LCLProc, GraphType, InterfaceBase, Math, Classes, SysUtils, Types, LCLType, LCLProc, GraphType, InterfaceBase,
FileUtil, LazFileUtils, UTF8Process, Maps, LMessages, LazUTF8, lazutf8sysutils, FileUtil, LazFileUtils, UTF8Process, Maps, LMessages, LazUTF8, lazutf8sysutils,
LCLStrConsts; LCLStrConsts;

View File

@ -23,7 +23,7 @@ unit LMessages;
interface interface
uses Classes, SysUtils, LCLType, GraphType uses Classes, SysUtils, Types, LCLType, GraphType
{$ifdef WINDOWS} {$ifdef WINDOWS}
,messages ,messages
{$endif WINDOWS} {$endif WINDOWS}