mirror of
https://github.com/aseprite/aseprite.git
synced 2025-04-09 18:44:46 +00:00
Zoom timeline with Ctrl+mouse wheel
This commit is contained in:
parent
c13f6276ad
commit
0d6a432ef5
@ -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:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user