cleanup and fix for the case of a horizontal scroll

This commit is contained in:
Carlo 'zED' Caputo 2016-10-11 16:43:42 -03:00
parent ebe9cb807e
commit 850b045104

View File

@ -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;