Text editors: Prevent autoscroll timer triggering from synth mouse events
The autoscrolling interferes with scrolling pan gestures and causes the scroll direction to be reversed when moving outside the window. Task-number: QTBUG-40461 Change-Id: I30ef848a346418929540c23730ab92f44e4565e2 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>bb10
parent
07f234d2a8
commit
1d9d8123de
|
|
@ -2042,11 +2042,13 @@ void QPlainTextEdit::mouseMoveEvent(QMouseEvent *e)
|
|||
d->sendControlEvent(e);
|
||||
if (!(e->buttons() & Qt::LeftButton))
|
||||
return;
|
||||
QRect visible = d->viewport->rect();
|
||||
if (visible.contains(pos))
|
||||
d->autoScrollTimer.stop();
|
||||
else if (!d->autoScrollTimer.isActive())
|
||||
d->autoScrollTimer.start(100, this);
|
||||
if (e->source() == Qt::MouseEventNotSynthesized) {
|
||||
const QRect visible = d->viewport->rect();
|
||||
if (visible.contains(pos))
|
||||
d->autoScrollTimer.stop();
|
||||
else if (!d->autoScrollTimer.isActive())
|
||||
d->autoScrollTimer.start(100, this);
|
||||
}
|
||||
}
|
||||
|
||||
/*! \reimp
|
||||
|
|
@ -2055,7 +2057,7 @@ void QPlainTextEdit::mouseReleaseEvent(QMouseEvent *e)
|
|||
{
|
||||
Q_D(QPlainTextEdit);
|
||||
d->sendControlEvent(e);
|
||||
if (d->autoScrollTimer.isActive()) {
|
||||
if (e->source() == Qt::MouseEventNotSynthesized && d->autoScrollTimer.isActive()) {
|
||||
d->autoScrollTimer.stop();
|
||||
d->ensureCursorVisible();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1574,11 +1574,13 @@ void QTextEdit::mouseMoveEvent(QMouseEvent *e)
|
|||
d->sendControlEvent(e);
|
||||
if (!(e->buttons() & Qt::LeftButton))
|
||||
return;
|
||||
QRect visible = d->viewport->rect();
|
||||
if (visible.contains(pos))
|
||||
d->autoScrollTimer.stop();
|
||||
else if (!d->autoScrollTimer.isActive())
|
||||
d->autoScrollTimer.start(100, this);
|
||||
if (e->source() == Qt::MouseEventNotSynthesized) {
|
||||
const QRect visible = d->viewport->rect();
|
||||
if (visible.contains(pos))
|
||||
d->autoScrollTimer.stop();
|
||||
else if (!d->autoScrollTimer.isActive())
|
||||
d->autoScrollTimer.start(100, this);
|
||||
}
|
||||
}
|
||||
|
||||
/*! \reimp
|
||||
|
|
@ -1587,7 +1589,7 @@ void QTextEdit::mouseReleaseEvent(QMouseEvent *e)
|
|||
{
|
||||
Q_D(QTextEdit);
|
||||
d->sendControlEvent(e);
|
||||
if (d->autoScrollTimer.isActive()) {
|
||||
if (e->source() == Qt::MouseEventNotSynthesized && d->autoScrollTimer.isActive()) {
|
||||
d->autoScrollTimer.stop();
|
||||
ensureCursorVisible();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue