mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-10-26 01:01:27 +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
|
TmpSize: TSize; // used by WM_MEASUREITEM
|
||||||
Info: TComboboxInfo;
|
Info: TComboboxInfo;
|
||||||
OrgCharCode: word; // used in WM_CHAR handling
|
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;
|
function GetMenuParent(ASearch, AParent: HMENU): HMENU;
|
||||||
var
|
var
|
||||||
@ -1862,6 +1864,19 @@ begin
|
|||||||
P.X := X;
|
P.X := X;
|
||||||
P.Y := Y;
|
P.Y := Y;
|
||||||
TargetWindow := TWin32WidgetSet(WidgetSet).WindowFromPoint(P);
|
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
|
if (TargetWindow = 0) or not IsWindowEnabled(TargetWindow) then
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user