mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 18:39:28 +02:00
Merged revision(s) 56857 #3ba9674deb from trunk:
win32: fix double CM_MOUSELEAVE messages. Issue #32844 ........ git-svn-id: branches/fixes_1_8@56861 -
This commit is contained in:
parent
f57595bd62
commit
1ca943c156
@ -1983,7 +1983,7 @@ begin
|
|||||||
|
|
||||||
case Msg of
|
case Msg of
|
||||||
WM_MOUSEFIRST..WM_MOUSELAST:
|
WM_MOUSEFIRST..WM_MOUSELAST:
|
||||||
if Application.MouseControl<>lWinControl then
|
if (LastMouseTracking<>lWinControl) then
|
||||||
begin
|
begin
|
||||||
// register for WM_MOUSELEAVE
|
// register for WM_MOUSELEAVE
|
||||||
FillChar(LMouseEvent, SizeOf(TTRACKMOUSEEVENT), 0);
|
FillChar(LMouseEvent, SizeOf(TTRACKMOUSEEVENT), 0);
|
||||||
@ -1992,6 +1992,7 @@ begin
|
|||||||
LMouseEvent.hwndTrack := Window;
|
LMouseEvent.hwndTrack := Window;
|
||||||
LMouseEvent.dwHoverTime := HOVER_DEFAULT;
|
LMouseEvent.dwHoverTime := HOVER_DEFAULT;
|
||||||
_TrackMouseEvent(@LMouseEvent);
|
_TrackMouseEvent(@LMouseEvent);
|
||||||
|
LastMouseTracking := lWinControl;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -2238,7 +2239,11 @@ begin
|
|||||||
begin
|
begin
|
||||||
NotifyUserInput := True;
|
NotifyUserInput := True;
|
||||||
LMessage.Msg := LM_MOUSELEAVE;
|
LMessage.Msg := LM_MOUSELEAVE;
|
||||||
Application.DoBeforeMouseMessage(nil);
|
if lWinControl=LastMouseTracking then
|
||||||
|
begin
|
||||||
|
Application.DoBeforeMouseMessage(nil);
|
||||||
|
LastMouseTracking := nil;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
WM_MOUSEMOVE: DoMsgMouseMove;
|
WM_MOUSEMOVE: DoMsgMouseMove;
|
||||||
WM_MOUSEWHEEL: if DoMsgMouseWheel(Result) then Exit;
|
WM_MOUSEWHEEL: if DoMsgMouseWheel(Result) then Exit;
|
||||||
|
@ -274,6 +274,7 @@ type
|
|||||||
|
|
||||||
var
|
var
|
||||||
LastMouse: TLastMouseInfo;
|
LastMouse: TLastMouseInfo;
|
||||||
|
LastMouseTracking: TControl = nil;
|
||||||
ComboBoxHandleSizeWindow: HWND = 0;
|
ComboBoxHandleSizeWindow: HWND = 0;
|
||||||
IgnoreNextCharWindow: HWND = 0; // ignore next WM_(SYS)CHAR message
|
IgnoreNextCharWindow: HWND = 0; // ignore next WM_(SYS)CHAR message
|
||||||
IgnoreKeyUp: Boolean = True; // ignore KeyUp after application start; issue #30836
|
IgnoreKeyUp: Boolean = True; // ignore KeyUp after application start; issue #30836
|
||||||
|
Loading…
Reference in New Issue
Block a user