1
0
mirror of https://github.com/tumic0/GPXSee.git synced 2024-11-24 11:45:53 +01:00

Fixed scroll wheel zooming on devices with "fine-resolution wheels"

This commit is contained in:
Martin Tůma 2021-10-15 19:24:50 +02:00
parent 5533f1e004
commit 6ffeefe9c9
2 changed files with 8 additions and 8 deletions

View File

@ -350,12 +350,12 @@ void GraphView::mousePressEvent(QMouseEvent *e)
void GraphView::wheelEvent(QWheelEvent *e) void GraphView::wheelEvent(QWheelEvent *e)
{ {
static int deg = 0; static int deg8 = 0;
deg += e->angleDelta().y() / 8; deg8 += e->angleDelta().y();
if (qAbs(deg) < 15) if (qAbs(deg8) < (15 * 8))
return; return;
deg = 0; deg8 = deg8 % (15 * 8);
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) #if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
QPointF pos = mapToScene(e->pos()); QPointF pos = mapToScene(e->pos());

View File

@ -586,17 +586,17 @@ void MapView::zoom(int zoom, const QPoint &pos, bool shift)
void MapView::wheelEvent(QWheelEvent *event) void MapView::wheelEvent(QWheelEvent *event)
{ {
static int deg = 0; static int deg8 = 0;
bool shift = (event->modifiers() & MODIFIER) ? true : false; bool shift = (event->modifiers() & MODIFIER) ? true : false;
// Shift inverts the wheel axis on OS X, so use scrolling in both axes for // Shift inverts the wheel axis on OS X, so use scrolling in both axes for
// the zoom. // the zoom.
int delta = event->angleDelta().y() int delta = event->angleDelta().y()
? event->angleDelta().y() : event->angleDelta().x(); ? event->angleDelta().y() : event->angleDelta().x();
deg += delta / 8; deg8 += delta;
if (qAbs(deg) < 15) if (qAbs(deg8) < (15 * 8))
return; return;
deg = 0; deg8 = deg8 % (15 * 8);
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) #if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
zoom((delta > 0) ? 1 : -1, event->pos(), shift); zoom((delta > 0) ? 1 : -1, event->pos(), shift);