mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-01 18:21:12 +02:00
Qt: do not generate LM_VSCROLL and LM_WHEEL at the same time.Let LCL decide on it's needs. issue #18571
git-svn-id: trunk@29253 -
This commit is contained in:
parent
3f02a01956
commit
670981f753
@ -183,7 +183,7 @@ type
|
||||
procedure SlotNCMouse(Sender: QObjectH; Event: QEventH); cdecl;
|
||||
function SlotMouseEnter(Sender: QObjectH; Event: QEventH): Boolean; cdecl;
|
||||
function SlotMouseMove(Sender: QObjectH; Event: QEventH): Boolean; cdecl;
|
||||
procedure SlotMouseWheel(Sender: QObjectH; Event: QEventH); cdecl;
|
||||
function SlotMouseWheel(Sender: QObjectH; Event: QEventH): Boolean; cdecl;
|
||||
procedure SlotMove(Event: QEventH); cdecl;
|
||||
procedure SlotPaintBg(Sender: QObjectH; Event: QEventH); cdecl;
|
||||
procedure SlotPaint(Sender: QObjectH; Event: QEventH); cdecl;
|
||||
@ -2155,10 +2155,7 @@ begin
|
||||
QEventMouseButtonRelease,
|
||||
QEventMouseButtonDblClick: Result := SlotMouse(Sender, Event);
|
||||
QEventMouseMove: Result := SlotMouseMove(Sender, Event);
|
||||
QEventWheel:
|
||||
begin
|
||||
SlotMouseWheel(Sender, Event);
|
||||
end;
|
||||
QEventWheel: Result := SlotMouseWheel(Sender, Event);
|
||||
QEventMove: SlotMove(Event);
|
||||
QEventResize: SlotResize(Event);
|
||||
QEventContentsRectChange: LCLObject.DoAdjustClientRectChange(False);
|
||||
@ -2991,13 +2988,14 @@ end;
|
||||
|
||||
Msg.WheelData: -1 for up, 1 for down
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TQtWidget.SlotMouseWheel(Sender: QObjectH; Event: QEventH); cdecl;
|
||||
function TQtWidget.SlotMouseWheel(Sender: QObjectH; Event: QEventH): Boolean; cdecl;
|
||||
var
|
||||
Msg: TLMMouseEvent;
|
||||
MousePos: TQtPoint;
|
||||
Modifiers: QtKeyboardModifiers;
|
||||
ModifierState: PtrInt;
|
||||
begin
|
||||
Result := False;
|
||||
if not CanSendLCLMessage then
|
||||
exit;
|
||||
|
||||
@ -3031,14 +3029,14 @@ begin
|
||||
Msg.WheelDelta := QWheelEvent_delta(QWheelEventH(Event));
|
||||
|
||||
NotifyApplicationUserInput(Msg.Msg);
|
||||
DeliverMessage(Msg);
|
||||
Result := DeliverMessage(Msg) <> 0;
|
||||
|
||||
{propagate mousewheel to parent if our sender is TPanel,
|
||||
fixes problem with mousewheel scroll with lazreport}
|
||||
if not (csDesigning in LCLObject.ComponentState) and
|
||||
(LCLObject is TPanel) and
|
||||
Assigned(LCLObject.Parent) then
|
||||
TQtWidget(LCLObject.Parent.Handle).DeliverMessage(Msg);
|
||||
Result := TQtWidget(LCLObject.Parent.Handle).DeliverMessage(Msg) <> 0;
|
||||
end;
|
||||
|
||||
procedure TQtWidget.SlotMove(Event: QEventH); cdecl;
|
||||
@ -6059,7 +6057,14 @@ begin
|
||||
QEventWheel,
|
||||
QEventPaint,
|
||||
QEventKeyPress,
|
||||
QEventKeyRelease: Result := False;
|
||||
QEventKeyRelease:
|
||||
begin
|
||||
if (QEvent_type(Event) = QEventWheel) and Assigned(FOwner) and
|
||||
(FOwner is TQtCustomControl) then
|
||||
Result := inherited EventFilter(Sender, Event)
|
||||
else
|
||||
Result := False;
|
||||
end;
|
||||
else
|
||||
if FOwnWidget then
|
||||
Result := inherited EventFilter(Sender, Event);
|
||||
@ -11374,13 +11379,8 @@ begin
|
||||
end else
|
||||
LCLObject.DoAdjustClientRectChange;
|
||||
end;
|
||||
QEventWheel,
|
||||
QEventLayoutRequest: ; // nothing to do here
|
||||
QEventWheel:
|
||||
begin
|
||||
inherited EventFilter(Sender, Event);
|
||||
Result := True;
|
||||
QEvent_ignore(Event);
|
||||
end;
|
||||
else
|
||||
Result := inherited EventFilter(Sender, Event);
|
||||
end;
|
||||
@ -11735,10 +11735,11 @@ begin
|
||||
else
|
||||
if QEvent_type(Event) = QEventWheel then
|
||||
begin
|
||||
if not horizontalScrollBar.getVisible and not verticalScrollBar.getVisible then
|
||||
if not horizontalScrollBar.getVisible and
|
||||
not verticalScrollBar.getVisible then
|
||||
Result := inherited EventFilter(Sender, Event)
|
||||
else
|
||||
Result := False;
|
||||
Result := False;
|
||||
end else
|
||||
{$IFDEF MSWINDOWS}
|
||||
{sometimes our IDE completely freezes, after screensaver activated
|
||||
|
Loading…
Reference in New Issue
Block a user