mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-07 12:44:00 +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;
|
procedure SlotNCMouse(Sender: QObjectH; Event: QEventH); cdecl;
|
||||||
function SlotMouseEnter(Sender: QObjectH; Event: QEventH): Boolean; cdecl;
|
function SlotMouseEnter(Sender: QObjectH; Event: QEventH): Boolean; cdecl;
|
||||||
function SlotMouseMove(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 SlotMove(Event: QEventH); cdecl;
|
||||||
procedure SlotPaintBg(Sender: QObjectH; Event: QEventH); cdecl;
|
procedure SlotPaintBg(Sender: QObjectH; Event: QEventH); cdecl;
|
||||||
procedure SlotPaint(Sender: QObjectH; Event: QEventH); cdecl;
|
procedure SlotPaint(Sender: QObjectH; Event: QEventH); cdecl;
|
||||||
@ -2155,10 +2155,7 @@ begin
|
|||||||
QEventMouseButtonRelease,
|
QEventMouseButtonRelease,
|
||||||
QEventMouseButtonDblClick: Result := SlotMouse(Sender, Event);
|
QEventMouseButtonDblClick: Result := SlotMouse(Sender, Event);
|
||||||
QEventMouseMove: Result := SlotMouseMove(Sender, Event);
|
QEventMouseMove: Result := SlotMouseMove(Sender, Event);
|
||||||
QEventWheel:
|
QEventWheel: Result := SlotMouseWheel(Sender, Event);
|
||||||
begin
|
|
||||||
SlotMouseWheel(Sender, Event);
|
|
||||||
end;
|
|
||||||
QEventMove: SlotMove(Event);
|
QEventMove: SlotMove(Event);
|
||||||
QEventResize: SlotResize(Event);
|
QEventResize: SlotResize(Event);
|
||||||
QEventContentsRectChange: LCLObject.DoAdjustClientRectChange(False);
|
QEventContentsRectChange: LCLObject.DoAdjustClientRectChange(False);
|
||||||
@ -2991,13 +2988,14 @@ end;
|
|||||||
|
|
||||||
Msg.WheelData: -1 for up, 1 for down
|
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
|
var
|
||||||
Msg: TLMMouseEvent;
|
Msg: TLMMouseEvent;
|
||||||
MousePos: TQtPoint;
|
MousePos: TQtPoint;
|
||||||
Modifiers: QtKeyboardModifiers;
|
Modifiers: QtKeyboardModifiers;
|
||||||
ModifierState: PtrInt;
|
ModifierState: PtrInt;
|
||||||
begin
|
begin
|
||||||
|
Result := False;
|
||||||
if not CanSendLCLMessage then
|
if not CanSendLCLMessage then
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
@ -3031,14 +3029,14 @@ begin
|
|||||||
Msg.WheelDelta := QWheelEvent_delta(QWheelEventH(Event));
|
Msg.WheelDelta := QWheelEvent_delta(QWheelEventH(Event));
|
||||||
|
|
||||||
NotifyApplicationUserInput(Msg.Msg);
|
NotifyApplicationUserInput(Msg.Msg);
|
||||||
DeliverMessage(Msg);
|
Result := DeliverMessage(Msg) <> 0;
|
||||||
|
|
||||||
{propagate mousewheel to parent if our sender is TPanel,
|
{propagate mousewheel to parent if our sender is TPanel,
|
||||||
fixes problem with mousewheel scroll with lazreport}
|
fixes problem with mousewheel scroll with lazreport}
|
||||||
if not (csDesigning in LCLObject.ComponentState) and
|
if not (csDesigning in LCLObject.ComponentState) and
|
||||||
(LCLObject is TPanel) and
|
(LCLObject is TPanel) and
|
||||||
Assigned(LCLObject.Parent) then
|
Assigned(LCLObject.Parent) then
|
||||||
TQtWidget(LCLObject.Parent.Handle).DeliverMessage(Msg);
|
Result := TQtWidget(LCLObject.Parent.Handle).DeliverMessage(Msg) <> 0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TQtWidget.SlotMove(Event: QEventH); cdecl;
|
procedure TQtWidget.SlotMove(Event: QEventH); cdecl;
|
||||||
@ -6059,7 +6057,14 @@ begin
|
|||||||
QEventWheel,
|
QEventWheel,
|
||||||
QEventPaint,
|
QEventPaint,
|
||||||
QEventKeyPress,
|
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
|
else
|
||||||
if FOwnWidget then
|
if FOwnWidget then
|
||||||
Result := inherited EventFilter(Sender, Event);
|
Result := inherited EventFilter(Sender, Event);
|
||||||
@ -11374,13 +11379,8 @@ begin
|
|||||||
end else
|
end else
|
||||||
LCLObject.DoAdjustClientRectChange;
|
LCLObject.DoAdjustClientRectChange;
|
||||||
end;
|
end;
|
||||||
|
QEventWheel,
|
||||||
QEventLayoutRequest: ; // nothing to do here
|
QEventLayoutRequest: ; // nothing to do here
|
||||||
QEventWheel:
|
|
||||||
begin
|
|
||||||
inherited EventFilter(Sender, Event);
|
|
||||||
Result := True;
|
|
||||||
QEvent_ignore(Event);
|
|
||||||
end;
|
|
||||||
else
|
else
|
||||||
Result := inherited EventFilter(Sender, Event);
|
Result := inherited EventFilter(Sender, Event);
|
||||||
end;
|
end;
|
||||||
@ -11735,10 +11735,11 @@ begin
|
|||||||
else
|
else
|
||||||
if QEvent_type(Event) = QEventWheel then
|
if QEvent_type(Event) = QEventWheel then
|
||||||
begin
|
begin
|
||||||
if not horizontalScrollBar.getVisible and not verticalScrollBar.getVisible then
|
if not horizontalScrollBar.getVisible and
|
||||||
|
not verticalScrollBar.getVisible then
|
||||||
Result := inherited EventFilter(Sender, Event)
|
Result := inherited EventFilter(Sender, Event)
|
||||||
else
|
else
|
||||||
Result := False;
|
Result := False;
|
||||||
end else
|
end else
|
||||||
{$IFDEF MSWINDOWS}
|
{$IFDEF MSWINDOWS}
|
||||||
{sometimes our IDE completely freezes, after screensaver activated
|
{sometimes our IDE completely freezes, after screensaver activated
|
||||||
|
Loading…
Reference in New Issue
Block a user