From c365f34223a12ebea89d37077b304ef39ad6c2e5 Mon Sep 17 00:00:00 2001 From: shun-iwasawa Date: Mon, 14 Mar 2022 19:00:43 +0900 Subject: [PATCH] disable edit shift when deactivating shift & trace --- toonz/sources/tnztools/shifttracetool.cpp | 4 ++++ toonz/sources/toonz/sceneviewer.cpp | 12 +++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/toonz/sources/tnztools/shifttracetool.cpp b/toonz/sources/tnztools/shifttracetool.cpp index 203faafb..7d1d7202 100644 --- a/toonz/sources/tnztools/shifttracetool.cpp +++ b/toonz/sources/tnztools/shifttracetool.cpp @@ -348,6 +348,10 @@ void ShiftTraceTool::onActivate() { } void ShiftTraceTool::onDeactivate() { + // Deactivating Shift and Trace mode resets the pseudo tool with keeping the + // Edit Shift checkbox unchanged + QAction *shiftTrace = CommandManager::instance()->getAction("MI_ShiftTrace"); + if (!shiftTrace->isChecked()) return; QAction *action = CommandManager::instance()->getAction("MI_EditShift"); action->setChecked(false); } diff --git a/toonz/sources/toonz/sceneviewer.cpp b/toonz/sources/toonz/sceneviewer.cpp index 2f424946..4dbcfb0d 100644 --- a/toonz/sources/toonz/sceneviewer.cpp +++ b/toonz/sources/toonz/sceneviewer.cpp @@ -420,7 +420,17 @@ public: if (std::string(m_cmdId) == MI_ShiftTrace) { cm->enable(MI_EditShift, checked); cm->enable(MI_NoShift, checked); - if (checked) OnioniSkinMaskGUI::resetShiftTraceFrameOffset(); + if (checked) { + OnioniSkinMaskGUI::resetShiftTraceFrameOffset(); + // activate edit shift + if (isChecked(MI_EditShift)) + TApp::instance()->getCurrentTool()->setPseudoTool("T_ShiftTrace"); + } else { + // deactivate edit shift + if (isChecked(MI_EditShift)) + TApp::instance()->getCurrentTool()->unsetPseudoTool(); + } + // cm->getAction(MI_NoShift)->setChecked(false); TApp::instance()->getCurrentOnionSkin()->notifyOnionSkinMaskChanged(); } else if (std::string(m_cmdId) == MI_EditShift) {