mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-10-23 11:41:45 +02:00
LCL Win32: Fix WM_MOUSEWHEEL handling for Synaptics and other touchpad drivers. Issue #25209, modified from patch by Dmitry Zhylko.
git-svn-id: trunk@47038 -
This commit is contained in:
parent
3dd8de39eb
commit
9996c5feef
@ -272,6 +272,8 @@ var
|
||||
TmpSize: TSize; // used by WM_MEASUREITEM
|
||||
Info: TComboboxInfo;
|
||||
OrgCharCode: word; // used in WM_CHAR handling
|
||||
SynapticsWindow: HWND; // used by WM_MOUSEWHEEL
|
||||
SynapticsClassName: PAnsiChar; // used by WM_MOUSEWHEEL
|
||||
|
||||
function GetMenuParent(ASearch, AParent: HMENU): HMENU;
|
||||
var
|
||||
@ -1862,6 +1864,19 @@ begin
|
||||
P.X := X;
|
||||
P.Y := Y;
|
||||
TargetWindow := TWin32WidgetSet(WidgetSet).WindowFromPoint(P);
|
||||
|
||||
// For Synaptics and Lenovo (and other?) touchpad driver
|
||||
SynapticsWindow := Windows.WindowFromPoint(P);
|
||||
GetMem(SynapticsClassName, 50);
|
||||
try
|
||||
GetClassNameA(SynapticsWindow, SynapticsClassName, 50);
|
||||
// Not only for Synaptics any more
|
||||
//if SynapticsClassName = 'SynTrackCursorWindowClass' then
|
||||
TargetWindow := Window;
|
||||
finally
|
||||
FreeMem(SynapticsClassName);
|
||||
end;
|
||||
|
||||
if (TargetWindow = 0) or not IsWindowEnabled(TargetWindow) then
|
||||
exit;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user