mirror of
https://github.com/aseprite/aseprite.git
synced 2025-02-23 09:41:04 +00:00
cleanup and fix for the case of a horizontal scroll
This commit is contained in:
parent
ebe9cb807e
commit
850b045104
@ -1065,23 +1065,27 @@ bool Timeline::onProcessMessage(Message* msg)
|
|||||||
|
|
||||||
case kMouseWheelMessage:
|
case kMouseWheelMessage:
|
||||||
if (m_document) {
|
if (m_document) {
|
||||||
int dz = static_cast<MouseMessage*>(msg)->wheelDelta().y;
|
int base_size = skinTheme()->dimensions.timelineBaseSize();
|
||||||
int dx = 0;
|
int dz = static_cast<MouseMessage*>(msg)->wheelDelta().y * base_size;
|
||||||
int dy = 0;
|
|
||||||
|
|
||||||
dx += static_cast<MouseMessage*>(msg)->wheelDelta().x;
|
|
||||||
|
|
||||||
if (msg->altPressed()) {
|
if (msg->altPressed()) {
|
||||||
|
if (dz != 0) {
|
||||||
double next_zoom = m_zoom + (dz < 0 ? 1 : -1);
|
double next_zoom = m_zoom + (dz < 0 ? 1 : -1);
|
||||||
setZoomAndUpdate(next_zoom);
|
setZoomAndUpdate(next_zoom);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
int base_size = skinTheme()->dimensions.timelineBaseSize();
|
int dx;
|
||||||
|
int dy;
|
||||||
|
|
||||||
if (msg->ctrlPressed())
|
if (msg->ctrlPressed()) {
|
||||||
dx = dz * base_size;
|
dx = dz;
|
||||||
else
|
dy = 0;
|
||||||
dy = dz * base_size;
|
}
|
||||||
|
else {
|
||||||
|
dx = static_cast<MouseMessage*>(msg)->wheelDelta().x * base_size;
|
||||||
|
dy = dz;
|
||||||
|
}
|
||||||
|
|
||||||
if (msg->shiftPressed()) {
|
if (msg->shiftPressed()) {
|
||||||
dx *= frameBoxWidth() / base_size;
|
dx *= frameBoxWidth() / base_size;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user