From a74f828eb4d934c3f5f59dd544a5f7554db8b896 Mon Sep 17 00:00:00 2001 From: manongjohn Date: Thu, 4 Mar 2021 22:42:04 -0500 Subject: [PATCH] Fix restoring cursor after quick action release --- toonz/sources/toonz/sceneviewerevents.cpp | 4 +++- toonz/sources/toonz/xshcellviewer.cpp | 9 +++++++++ toonz/sources/toonz/xshcellviewer.h | 2 ++ toonz/sources/toonz/xsheetviewer.cpp | 2 ++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/toonz/sources/toonz/sceneviewerevents.cpp b/toonz/sources/toonz/sceneviewerevents.cpp index a7e8e92e..cebfd9f3 100644 --- a/toonz/sources/toonz/sceneviewerevents.cpp +++ b/toonz/sources/toonz/sceneviewerevents.cpp @@ -893,6 +893,7 @@ void SceneViewer::onRelease(const TMouseEvent &event) { if (m_keyAction) { m_keyAction->setEnabled(true); m_keyAction = 0; + invalidateToolStatus(); } m_resetOnRelease = false; } else if (m_mousePanning > 0) @@ -1491,7 +1492,7 @@ bool SceneViewer::event(QEvent *e) { m_mouseRotating = 0; m_keyAction->setEnabled(true); m_keyAction = 0; - if (tool) setToolCursor(this, tool->getCursorId()); + invalidateToolStatus(); e->accept(); return true; } @@ -2033,6 +2034,7 @@ void SceneViewer::resetNavigation() { if (m_keyAction) { m_keyAction->setEnabled(true); m_keyAction = 0; + invalidateToolStatus(); } } } \ No newline at end of file diff --git a/toonz/sources/toonz/xshcellviewer.cpp b/toonz/sources/toonz/xshcellviewer.cpp index 950a046c..6148da4c 100644 --- a/toonz/sources/toonz/xshcellviewer.cpp +++ b/toonz/sources/toonz/xshcellviewer.cpp @@ -3765,4 +3765,13 @@ void CellArea::onStepChanged(QAction *act) { //----------------------------------------------------------------------------- +void CellArea::updateCursor() { + if (m_viewer->m_panningArmed) + setToolCursor(this, ToolCursor::PanCursor); + else + setCursor(Qt::ArrowCursor); +} + +//----------------------------------------------------------------------------- + } // namespace XsheetGUI diff --git a/toonz/sources/toonz/xshcellviewer.h b/toonz/sources/toonz/xshcellviewer.h index 0090e7a8..9d4a57e3 100644 --- a/toonz/sources/toonz/xshcellviewer.h +++ b/toonz/sources/toonz/xshcellviewer.h @@ -145,6 +145,8 @@ public: return m_renameCell && m_renameCell->isRenamingCell(); } + void updateCursor(); + protected: void paintEvent(QPaintEvent *) override; diff --git a/toonz/sources/toonz/xsheetviewer.cpp b/toonz/sources/toonz/xsheetviewer.cpp index 90538494..36f40447 100644 --- a/toonz/sources/toonz/xsheetviewer.cpp +++ b/toonz/sources/toonz/xsheetviewer.cpp @@ -1854,11 +1854,13 @@ bool XsheetViewer::event(QEvent *e) { if (e->type() == QEvent::KeyPress || e->type() == QEvent::ShortcutOverride) { m_panningArmed = true; action->setEnabled(false); + m_cellArea->updateCursor(); e->accept(); return true; } else if (e->type() == QEvent::KeyRelease) { if (!keyEvent->isAutoRepeat()) m_panningArmed = false; action->setEnabled(true); + m_cellArea->updateCursor(); e->accept(); return true; }