diff --git a/UI/window-basic-preview.cpp b/UI/window-basic-preview.cpp index c265afbf1..01cd73026 100644 --- a/UI/window-basic-preview.cpp +++ b/UI/window-basic-preview.cpp @@ -380,8 +380,7 @@ void OBSBasicPreview::GetStretchHandleData(const vec2 &pos) void OBSBasicPreview::keyPressEvent(QKeyEvent *event) { - if (locked || - GetScalingMode() == ScalingMode::Window || + if (GetScalingMode() == ScalingMode::Window || event->isAutoRepeat()) { OBSQTDisplay::keyPressEvent(event); return; @@ -416,6 +415,19 @@ void OBSBasicPreview::keyReleaseEvent(QKeyEvent *event) void OBSBasicPreview::mousePressEvent(QMouseEvent *event) { + if (scrollMode && GetScalingMode() != ScalingMode::Window && + event->button() == Qt::LeftButton) { + setCursor(Qt::ClosedHandCursor); + scrollingFrom.x = event->x(); + scrollingFrom.y = event->y(); + return; + } + + if (event->button() == Qt::RightButton) { + scrollMode = false; + setCursor(Qt::ArrowCursor); + } + if (locked) { OBSQTDisplay::mousePressEvent(event); return; @@ -430,13 +442,6 @@ void OBSBasicPreview::mousePressEvent(QMouseEvent *event) OBSQTDisplay::mousePressEvent(event); - if (scrollMode && GetScalingMode() != ScalingMode::Window) { - setCursor(Qt::ClosedHandCursor); - scrollingFrom.x = event->x(); - scrollingFrom.y = event->y(); - return; - } - if (event->button() != Qt::LeftButton && event->button() != Qt::RightButton) return; @@ -500,14 +505,14 @@ void OBSBasicPreview::ProcessClick(const vec2 &pos) void OBSBasicPreview::mouseReleaseEvent(QMouseEvent *event) { + if (scrollMode) + setCursor(Qt::OpenHandCursor); + if (locked) { OBSQTDisplay::mouseReleaseEvent(event); return; } - if (scrollMode) - setCursor(Qt::OpenHandCursor); - if (mouseDown) { vec2 pos = GetMouseEventPos(event); @@ -998,9 +1003,6 @@ void OBSBasicPreview::StretchItem(const vec2 &pos) void OBSBasicPreview::mouseMoveEvent(QMouseEvent *event) { - if (locked) - return; - if (scrollMode && event->buttons() == Qt::LeftButton) { scrollingOffset.x += event->x() - scrollingFrom.x; scrollingOffset.y += event->y() - scrollingFrom.y; @@ -1010,6 +1012,9 @@ void OBSBasicPreview::mouseMoveEvent(QMouseEvent *event) return; } + if (locked) + return; + if (mouseDown) { vec2 pos = GetMouseEventPos(event);