From aa9cc72aa3c19656b7ca45c074ed4dab4f142e03 Mon Sep 17 00:00:00 2001 From: Mark Liversedge Date: Fri, 21 Mar 2014 11:57:51 +0000 Subject: [PATCH] Less event filtering .. too many widgets are filtering events needlessly. --- src/GoldenCheetah.cpp | 35 ++++++++++------------------------- src/GoldenCheetah.h | 8 ++++---- src/HomeWindow.cpp | 2 +- 3 files changed, 15 insertions(+), 30 deletions(-) diff --git a/src/GoldenCheetah.cpp b/src/GoldenCheetah.cpp index 8c3f6cd69..b2bc93900 100644 --- a/src/GoldenCheetah.cpp +++ b/src/GoldenCheetah.cpp @@ -331,33 +331,12 @@ GcWindow::paintEvent(QPaintEvent * /*event*/) /*---------------------------------------------------------------------- * Drag and resize tiles *--------------------------------------------------------------------*/ - -bool -GcWindow::eventFilter(QObject *, QEvent *e) -{ - if (!resizable()) return false; - - // handle moving / resizing activity - if (dragState != None) { - switch (e->type()) { - case QEvent::MouseMove: - mouseMoveEvent((QMouseEvent*)e); - return false; - break; - case QEvent::MouseButtonRelease: - mouseReleaseEvent((QMouseEvent*)e); - return false; - break; - default: - break; - } - } - return false; -} - void GcWindow::mousePressEvent(QMouseEvent *e) { + // always propagate + e->ignore(); + if (!resizable() || e->button() == Qt::NoButton || isHidden()) { setDragState(None); return; @@ -389,8 +368,11 @@ GcWindow::mousePressEvent(QMouseEvent *e) } void -GcWindow::mouseReleaseEvent(QMouseEvent *) +GcWindow::mouseReleaseEvent(QMouseEvent *e) { + // always propagate + e->ignore(); + // tell the owner! if (dragState == Move) { setProperty("gripped", false); @@ -441,6 +423,9 @@ GcWindow::spotHotSpot(QMouseEvent *e) void GcWindow::mouseMoveEvent(QMouseEvent *e) { + // always propagate + e->ignore(); + if (!resizable()) return; if (dragState == None) { diff --git a/src/GoldenCheetah.h b/src/GoldenCheetah.h index 892aebae3..969728290 100644 --- a/src/GoldenCheetah.h +++ b/src/GoldenCheetah.h @@ -189,10 +189,10 @@ public: void paintEvent (QPaintEvent * event); // mouse actions -- resizing and dragging tiles - bool eventFilter(QObject *object, QEvent *e); - virtual void mousePressEvent(QMouseEvent *); - virtual void mouseReleaseEvent(QMouseEvent *); - virtual void mouseMoveEvent(QMouseEvent *); + //bool eventFilter(QObject *object, QEvent *e); + void mousePressEvent(QMouseEvent *); + void mouseReleaseEvent(QMouseEvent *); + void mouseMoveEvent(QMouseEvent *); void enterEvent(QEvent *); void leaveEvent(QEvent *); void setDragState(DragState); diff --git a/src/HomeWindow.cpp b/src/HomeWindow.cpp index 91b9a67e0..765573b48 100644 --- a/src/HomeWindow.cpp +++ b/src/HomeWindow.cpp @@ -756,7 +756,7 @@ HomeWindow::eventFilter(QObject *object, QEvent *e) } } - //qDebug()<type(); + //if (e->type() == 2) qDebug()<type(); // we watch the mouse when // dropping charts, to update