mirror of
https://github.com/YACReader/yacreader
synced 2025-06-04 01:28:55 -04:00
Fix flow scrolling in macos
This commit is contained in:
parent
91909f748d
commit
e92a537f95
@ -1,4 +1,6 @@
|
||||
#include "scroll_management.h"
|
||||
#include <QtCore>
|
||||
#include <QApplication>
|
||||
|
||||
ScrollManagement::ScrollManagement()
|
||||
{
|
||||
@ -9,12 +11,24 @@ ScrollManagement::ScrollManagement()
|
||||
|
||||
ScrollManagement::Movement ScrollManagement::getMovement(QWheelEvent *event)
|
||||
{
|
||||
/*QLOG_DEBUG() << "WheelEvent angle delta : " << event->angleDelta();
|
||||
QLOG_DEBUG() << "WheelEvent pixel delta : " << event->pixelDelta();*/
|
||||
// qDebug() << "WheelEvent angle delta : " << event->angleDelta();
|
||||
// qDebug() << "WheelEvent pixel delta : " << event->pixelDelta();
|
||||
// qDebug() << "Accumulator : " << wheelAccumulator;
|
||||
|
||||
int delta;
|
||||
int tooFast = 1;
|
||||
int timeThrottle = 16;
|
||||
int minimumMove = 70;
|
||||
int minimumMove;
|
||||
|
||||
if (event->pixelDelta().x() != 0 || event->pixelDelta().y() != 0) {
|
||||
delta = event->pixelDelta().y() + event->pixelDelta().x();
|
||||
minimumMove = 30;
|
||||
} else {
|
||||
delta = (event->angleDelta().y() / 8) + (event->angleDelta().x() / 8);
|
||||
minimumMove = 8;
|
||||
}
|
||||
|
||||
wheelAccumulator += delta;
|
||||
|
||||
// avoid any events overflood
|
||||
if ((wheelTimer->elapsed() < tooFast)) {
|
||||
@ -22,12 +36,6 @@ ScrollManagement::Movement ScrollManagement::getMovement(QWheelEvent *event)
|
||||
return None;
|
||||
}
|
||||
|
||||
// Accumulate the delta
|
||||
if ((event->angleDelta().y() < 0) != (wheelAccumulator < 0)) // different sign means change in direction
|
||||
wheelAccumulator = 0;
|
||||
|
||||
wheelAccumulator += event->angleDelta().y();
|
||||
|
||||
// Do not process events too fast
|
||||
if ((wheelTimer->elapsed() < timeThrottle)) {
|
||||
event->setAccepted(true);
|
||||
|
Loading…
x
Reference in New Issue
Block a user