X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;ds=sidebyside;f=classes%2Fclockswidget.cpp;h=04390b3278a1710b193f67bf5e4c1c15b0c332dc;hb=9c266db491a630c18d0ceb9d01a5f3662a5f11cf;hp=82cf7c3785bf097b5cf93a4c3c2ccfaa30aef58d;hpb=434b0c4e94e2ff4c3a44483892a44a227f081e71;p=chessclock diff --git a/classes/clockswidget.cpp b/classes/clockswidget.cpp index 82cf7c3..04390b3 100644 --- a/classes/clockswidget.cpp +++ b/classes/clockswidget.cpp @@ -28,7 +28,8 @@ #include #include #include - +#include +#include ClocksWidget::ClocksWidget(ChessClock *white, ChessClock *black, QWidget *parent): QWidget(parent) @@ -74,6 +75,8 @@ ClocksWidget::ClocksWidget(ChessClock *white, ChessClock *black, QWidget *parent black_->setAnother(white_); delayTimer_.start(); // Initial start + + recentX = recentY = -1; } ClocksWidget::~ClocksWidget() @@ -110,8 +113,16 @@ void ClocksWidget::stopPlay() void ClocksWidget::mouseReleaseEvent(QMouseEvent *event) { - if( delayTimer_.elapsed() > CLICKDELAY ) // To avoid double clicks + + // To avoid double clicks + // a) delay (default 1,2 secs) OR + // b) distance more than 90 pixels in axis. + if( delayTimer_.elapsed() > CLICKDELAY || + std::abs( event->x() - recentX ) > 90 || + std::abs( event->y() - recentY ) > 90 + ) { + delayTimer_.start(); // to reset delay timer! switch( status_) { case Welcome : @@ -150,6 +161,8 @@ void ClocksWidget::mouseReleaseEvent(QMouseEvent *event) } } + recentX = event->x(); + recentY = event->y(); } int const ClocksWidget::CLICKDELAY;