[Okular-devel] Re: About 265002 (Unreachable code in okular/ui/pageview.cpp (related to drag scroll))

Денис Песоцкий denis at kde.ru
Wed Feb 2 01:49:51 CET 2011


Sorry about that. I don't have any experience with big OSS projects
collaborative development (except kde-l10n, where we don't need to
care about revisions, diffs, ...).

Yes, it happens when panel is at top (following is logged after I
commented out delta fix): http://paste.kde.org/3932/
IMHO better solution: use QCursor::pos() to recalculate real delta if
we enter into one of that blocks related to absDelta. This must also
solve false triggering if it when mouse is rapidly moved.
Something like that:

                    QPoint mousePos = e->globalPos();
                    QPoint delta = d->mouseGrabPos - mousePos;

                    // wrap mouse from top to bottom
                    const QRect mouseContainer =
KGlobalSettings::desktopGeometry( this );
                    // If the delta is huge it probably means we just
wrapped in that direction
                    const QPoint absDelta(abs(delta.x()), abs(delta.y()));
                    if ( absDelta.y() > mouseContainer.height() / 2 ) {
                        delta.setY(d->mouseGrabPos.y() - QCursor::pos.y());
                    }
                    if ( absDelta.x() > mouseContainer.width() / 2 ) {
                       delta.setX(d->mouseGrabPos.x() - QCursor::pos.x());
                    }

What do you think?


More information about the Okular-devel mailing list