From 5cbc5d19c0151e9d9980e4fd9e44e9b5aef696f6 Mon Sep 17 00:00:00 2001 From: Roman Pudashkin Date: Tue, 16 Jun 2026 15:17:17 +0300 Subject: [PATCH 1/3] Disable autorepeat for piano & percussion panels --- src/app/configs/data/shortcuts.xml | 2 ++ src/app/configs/data/shortcuts_azerty.xml | 2 ++ src/app/configs/data/shortcuts_mac.xml | 2 ++ 3 files changed, 6 insertions(+) diff --git a/src/app/configs/data/shortcuts.xml b/src/app/configs/data/shortcuts.xml index b37443d1f8fd3..4087c439005bf 100644 --- a/src/app/configs/data/shortcuts.xml +++ b/src/app/configs/data/shortcuts.xml @@ -914,10 +914,12 @@ toggle-piano-keyboard P + 0 toggle-percussion-panel O + 0 inspector diff --git a/src/app/configs/data/shortcuts_azerty.xml b/src/app/configs/data/shortcuts_azerty.xml index 7bca1608df1bc..35fbc6bbebd57 100644 --- a/src/app/configs/data/shortcuts_azerty.xml +++ b/src/app/configs/data/shortcuts_azerty.xml @@ -955,10 +955,12 @@ toggle-piano-keyboard P + 0 toggle-percussion-panel O + 0 inspector diff --git a/src/app/configs/data/shortcuts_mac.xml b/src/app/configs/data/shortcuts_mac.xml index 2f15739dfd674..95722db836921 100644 --- a/src/app/configs/data/shortcuts_mac.xml +++ b/src/app/configs/data/shortcuts_mac.xml @@ -915,10 +915,12 @@ toggle-piano-keyboard P + 0 toggle-percussion-panel O + 0 inspector From c4459e496bf3633f13e9b689ae6c8c57cb863fb9 Mon Sep 17 00:00:00 2001 From: Roman Pudashkin Date: Tue, 16 Jun 2026 17:12:23 +0300 Subject: [PATCH 2/3] Fix #33752 (case 2): avoid adding dock to frame that will be deleted later The dock widget may still hold a pointer to such a frame in m_lastPositions Restoring it there causes FrameQuick::~FrameQuick() to delete the dock widget via qDeleteAll(), leading to a crash later --- .../thirdparty/KDDockWidgets/src/private/LayoutWidget.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/framework/dockwindow/thirdparty/KDDockWidgets/src/private/LayoutWidget.cpp b/src/framework/dockwindow/thirdparty/KDDockWidgets/src/private/LayoutWidget.cpp index 3e6d81f3a6037..159d2e0ffad85 100644 --- a/src/framework/dockwindow/thirdparty/KDDockWidgets/src/private/LayoutWidget.cpp +++ b/src/framework/dockwindow/thirdparty/KDDockWidgets/src/private/LayoutWidget.cpp @@ -116,6 +116,10 @@ void LayoutWidget::restorePlaceholder(DockWidgetBase *dw, Layouting::Item *item, auto frame = qobject_cast(item->guestAsQObject()); Q_ASSERT(frame); + if (frame->beingDeletedLater()) { + return; + } + if (tabIndex != -1 && frame->dockWidgetCount() >= tabIndex) { frame->insertWidget(dw, tabIndex); } else { From a997fbc0a701472927467cc23e1de2ed02030ffc Mon Sep 17 00:00:00 2001 From: Roman Pudashkin Date: Mon, 29 Jun 2026 14:20:06 +0300 Subject: [PATCH 3/3] Fix #33752 (case 1): set m_customMenuModel to null when the model is destroyed --- src/framework/dockwindow/qml/Muse/Dock/dockpanelview.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/framework/dockwindow/qml/Muse/Dock/dockpanelview.cpp b/src/framework/dockwindow/qml/Muse/Dock/dockpanelview.cpp index a5923a08cc1a2..b56058f6f367b 100644 --- a/src/framework/dockwindow/qml/Muse/Dock/dockpanelview.cpp +++ b/src/framework/dockwindow/qml/Muse/Dock/dockpanelview.cpp @@ -92,6 +92,10 @@ class DockPanelView::DockPanelMenuModel : public muse::uicomponents::AbstractMen connect(model, &AbstractMenuModel::itemChanged, this, [this](MenuItem* item) { updateItem(item); }); + + connect(model, &AbstractMenuModel::destroyed, this, [this]() { + m_customMenuModel = nullptr; + }); } private: