From e084fbc70581bc0156bcdccda6f99b1ea8ca69c3 Mon Sep 17 00:00:00 2001 From: Albert Astals Cid Date: Sun, 23 Jan 2011 01:32:16 +0000 Subject: [PATCH] Accept slight pixel movements for detecting mouse clicks Should help with bug 263314 BUGS: 263314 svn path=/trunk/KDE/kdegraphics/okular/; revision=1216390 --- ui/pageview.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ui/pageview.cpp b/ui/pageview.cpp index 0c67358db..b33f8b457 100644 --- a/ui/pageview.cpp +++ b/ui/pageview.cpp @@ -1804,9 +1804,12 @@ void PageView::mouseReleaseEvent( QMouseEvent * e ) updateCursor( eventPos ); PageViewItem * pageItem = pickItemOnPoint( eventPos.x(), eventPos.y() ); + const QPoint pressPos = contentAreaPoint( mapFromGlobal( d->mousePressPos ) ); + const PageViewItem * pageItemPressPos = pickItemOnPoint( pressPos.x(), pressPos.y() ); // if the mouse has not moved since the press, that's a -click- - if ( leftButton && pageItem && d->mousePressPos == e->globalPos()) + if ( leftButton && pageItem && pageItem == pageItemPressPos && + ( (d->mousePressPos - e->globalPos()).manhattanLength() < QApplication::startDragDistance() ) ) { double nX = pageItem->absToPageX(eventPos.x()); double nY = pageItem->absToPageY(eventPos.y()); @@ -1869,7 +1872,8 @@ void PageView::mouseReleaseEvent( QMouseEvent * e ) } else if ( rightButton ) { - if ( pageItem && d->mousePressPos == e->globalPos() ) + if ( pageItem && pageItem == pageItemPressPos && + ( (d->mousePressPos - e->globalPos()).manhattanLength() < QApplication::startDragDistance() ) ) { double nX = pageItem->absToPageX(eventPos.x()); double nY = pageItem->absToPageY(eventPos.y());