keyframeviewbase: hold shift to only drag bezier by time

This commit is contained in:
itsmattkc
2021-01-24 15:32:03 +11:00
parent 8d975faa83
commit d4e6d33db1
+12 -3
View File
@@ -186,6 +186,11 @@ void KeyframeViewBase::mouseMoveEvent(QMouseEvent *event)
// Calculate cursor difference and scale it
QPointF mouse_diff_scaled = GetScaledCursorPos(event->pos() - drag_start_);
if (event->modifiers() & Qt::ShiftModifier) {
// If holding shift, only move one axis
mouse_diff_scaled.setY(0);
}
if (dragging_bezier_point_) {
ProcessBezierDrag(mouse_diff_scaled,
!(event->modifiers() & Qt::ControlModifier),
@@ -245,10 +250,14 @@ void KeyframeViewBase::mouseReleaseEvent(QMouseEvent *event)
QGraphicsView::mouseReleaseEvent(event);
if (active_tool_ == Tool::kPointer) {
QPoint mouse_diff = event->pos() - drag_start_;
QPointF mouse_diff_scaled = GetScaledCursorPos(mouse_diff);
QPointF mouse_diff_scaled = GetScaledCursorPos(event->pos() - drag_start_);
if (!mouse_diff.isNull()) {
if (event->modifiers() & Qt::ShiftModifier) {
// If holding shift, only move one axis
mouse_diff_scaled.setY(0);
}
if (!mouse_diff_scaled.isNull()) {
if (dragging_bezier_point_) {
ProcessBezierDrag(mouse_diff_scaled,
!(event->modifiers() & Qt::ControlModifier),