Zoom timeline with Ctrl+mouse wheel

This commit is contained in:
David Capello 2017-11-10 18:24:06 -03:00
parent c13f6276ad
commit 0d6a432ef5

View File

@ -1204,7 +1204,23 @@ bool Timeline::onProcessMessage(Message* msg)
case kMouseWheelMessage: case kMouseWheelMessage:
if (m_document) { if (m_document) {
gfx::Point delta = static_cast<MouseMessage*>(msg)->wheelDelta(); gfx::Point delta = static_cast<MouseMessage*>(msg)->wheelDelta();
if (!static_cast<MouseMessage*>(msg)->preciseWheel()) { const bool precise = static_cast<MouseMessage*>(msg)->preciseWheel();
// Zoom timeline
if (msg->ctrlPressed() || // TODO configurable
msg->cmdPressed()) {
double dz = delta.x + delta.y;
if (precise) {
dz /= 1.5;
if (dz < -1.0) dz = -1.0;
else if (dz > 1.0) dz = 1.0;
}
setZoomAndUpdate(m_zoom - dz);
}
else {
if (!precise) {
delta.x *= frameBoxWidth(); delta.x *= frameBoxWidth();
delta.y *= layerBoxHeight(); delta.y *= layerBoxHeight();
@ -1221,6 +1237,7 @@ bool Timeline::onProcessMessage(Message* msg)
} }
setViewScroll(viewScroll() + delta); setViewScroll(viewScroll() + delta);
} }
}
break; break;
case kSetCursorMessage: case kSetCursorMessage: