From c1825cc5646341c8f8b2ca9279fca4d6bc47bc7c Mon Sep 17 00:00:00 2001 From: Florian Hanel Date: Thu, 3 Feb 2011 23:27:01 +0200 Subject: [PATCH] Bug 631170 - mouse hover broken in Qt build r=romaxa a=npodb --- widget/src/qt/mozqwidget.cpp | 5 +++-- widget/src/qt/mozqwidget.h | 1 + widget/src/qt/nsWindow.cpp | 6 +++--- widget/src/qt/nsWindow.h | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/widget/src/qt/mozqwidget.cpp b/widget/src/qt/mozqwidget.cpp index e20a2543b57..856bdf0b9c5 100644 --- a/widget/src/qt/mozqwidget.cpp +++ b/widget/src/qt/mozqwidget.cpp @@ -87,6 +87,7 @@ MozQWidget::MozQWidget(nsWindow* aReceiver, QGraphicsItem* aParent) setFlag(QGraphicsItem::ItemAcceptsInputMethod); setAcceptTouchEvents(true); #endif + setAcceptHoverEvents(true); } MozQWidget::~MozQWidget() @@ -176,7 +177,7 @@ void MozQWidget::hoverLeaveEvent(QGraphicsSceneHoverEvent* aEvent) void MozQWidget::hoverMoveEvent(QGraphicsSceneHoverEvent* aEvent) { - mReceiver->OnMoveEvent(aEvent); + mReceiver->OnMotionNotifyEvent(aEvent->pos(), aEvent->modifiers()); } void MozQWidget::keyPressEvent(QKeyEvent* aEvent) @@ -318,7 +319,7 @@ void MozQWidget::mouseDoubleClickEvent(QGraphicsSceneMouseEvent* aEvent) void MozQWidget::mouseMoveEvent(QGraphicsSceneMouseEvent* aEvent) { - mReceiver->OnMotionNotifyEvent(aEvent); + mReceiver->OnMotionNotifyEvent(aEvent->pos(), aEvent->modifiers()); } void MozQWidget::mousePressEvent(QGraphicsSceneMouseEvent* aEvent) diff --git a/widget/src/qt/mozqwidget.h b/widget/src/qt/mozqwidget.h index c9286b37044..44d379a76c2 100644 --- a/widget/src/qt/mozqwidget.h +++ b/widget/src/qt/mozqwidget.h @@ -193,6 +193,7 @@ public: , mTopLevelWidget(aTopLevel) { scene()->addItem(aTopLevel); + setMouseTracking(true); } protected: diff --git a/widget/src/qt/nsWindow.cpp b/widget/src/qt/nsWindow.cpp index 971113fa264..1267a578d21 100644 --- a/widget/src/qt/nsWindow.cpp +++ b/widget/src/qt/nsWindow.cpp @@ -1255,14 +1255,14 @@ define CHECK_MOUSE_BLOCKED {} #endif nsEventStatus -nsWindow::OnMotionNotifyEvent(QGraphicsSceneMouseEvent *aEvent) +nsWindow::OnMotionNotifyEvent(QPointF aPos, Qt::KeyboardModifiers aModifiers) { UserActivity(); CHECK_MOUSE_BLOCKED - mMoveEvent.pos = aEvent->pos(); - mMoveEvent.modifiers = aEvent->modifiers(); + mMoveEvent.pos = aPos; + mMoveEvent.modifiers = aModifiers; mMoveEvent.needDispatch = true; DispatchMotionToMainThread(); diff --git a/widget/src/qt/nsWindow.h b/widget/src/qt/nsWindow.h index 36e1be57542..2f94164503e 100644 --- a/widget/src/qt/nsWindow.h +++ b/widget/src/qt/nsWindow.h @@ -271,7 +271,7 @@ protected: virtual nsEventStatus OnCloseEvent(QCloseEvent *); virtual nsEventStatus OnEnterNotifyEvent(QGraphicsSceneHoverEvent *); virtual nsEventStatus OnLeaveNotifyEvent(QGraphicsSceneHoverEvent *); - virtual nsEventStatus OnMotionNotifyEvent(QGraphicsSceneMouseEvent *); + virtual nsEventStatus OnMotionNotifyEvent(QPointF, Qt::KeyboardModifiers); virtual nsEventStatus OnButtonPressEvent(QGraphicsSceneMouseEvent *); virtual nsEventStatus OnButtonReleaseEvent(QGraphicsSceneMouseEvent *); virtual nsEventStatus OnMouseDoubleClickEvent(QGraphicsSceneMouseEvent *);