forked from qt-creator/qt-creator
QmlDesigner: Fix Navigation event filter for some Linuxe
Change-Id: I4d629c5ec6866e497949455ef3cd59a216ffdbb6 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
committed by
Thomas Hartmann
parent
c223af0101
commit
d59e35af1a
@@ -76,19 +76,19 @@ bool Navigation2dFilter::wheelEvent(QWheelEvent *event)
|
|||||||
bool zoomChangedConnected = QObject::isSignalConnected(zoomChangedSignal);
|
bool zoomChangedConnected = QObject::isSignalConnected(zoomChangedSignal);
|
||||||
|
|
||||||
if (zoomChangedConnected) {
|
if (zoomChangedConnected) {
|
||||||
const double globalMouseSpeed =
|
double speed = 1.0 / 200.0;
|
||||||
QmlDesignerPlugin::settings().value(DesignerSettingsKey::EDITOR_ZOOM_FACTOR).toDouble();
|
bool isMac = Utils::HostOsInfo::isMacHost();
|
||||||
|
if (QPointF delta = event->pixelDelta(); !delta.isNull() && isMac) {
|
||||||
double speed = globalMouseSpeed/20.;
|
|
||||||
if (Utils::HostOsInfo::isMacHost())
|
|
||||||
speed = 1.0/200.;
|
|
||||||
|
|
||||||
if (QPointF delta = event->pixelDelta(); !delta.isNull()) {
|
|
||||||
double dist = std::abs(delta.x()) > std::abs(delta.y()) ? -delta.x() : delta.y();
|
double dist = std::abs(delta.x()) > std::abs(delta.y()) ? -delta.x() : delta.y();
|
||||||
emit zoomChanged(dist * speed, event->position());
|
emit zoomChanged(dist * speed, event->position());
|
||||||
event->accept();
|
event->accept();
|
||||||
return true;
|
return true;
|
||||||
} else if (QPointF delta = event->angleDelta(); !delta.isNull()) {
|
} else if (QPointF delta = event->angleDelta(); !delta.isNull()) {
|
||||||
|
|
||||||
|
const double globalMouseSpeed =
|
||||||
|
QmlDesignerPlugin::settings().value(DesignerSettingsKey::EDITOR_ZOOM_FACTOR).toDouble();
|
||||||
|
speed = globalMouseSpeed / 20.0;
|
||||||
|
|
||||||
constexpr double degreePerStep = 15.;
|
constexpr double degreePerStep = 15.;
|
||||||
constexpr double stepCount = 8.;
|
constexpr double stepCount = 8.;
|
||||||
double dist = std::abs(delta.x()) > std::abs(delta.y()) ? -delta.x() : delta.y();
|
double dist = std::abs(delta.x()) > std::abs(delta.y()) ? -delta.x() : delta.y();
|
||||||
|
Reference in New Issue
Block a user