diff --git a/src/palette/qml/MuseScore/Palette/internal/MoreElementsPopup.qml b/src/palette/qml/MuseScore/Palette/internal/MoreElementsPopup.qml index c6b8008600c37..989979f24cb89 100644 --- a/src/palette/qml/MuseScore/Palette/internal/MoreElementsPopup.qml +++ b/src/palette/qml/MuseScore/Palette/internal/MoreElementsPopup.qml @@ -52,6 +52,8 @@ StyledPopupView { property size cellSize property bool drawGrid + readonly property bool isDragInProgress: masterPalette.state == "drag" || customPalette.state == "drag" + property int maxHeight: 400 contentHeight: column.implicitHeight contentWidth: 300 diff --git a/src/palette/qml/MuseScore/Palette/internal/PaletteTree.qml b/src/palette/qml/MuseScore/Palette/internal/PaletteTree.qml index 2562acd78c539..a464643fcfd2d 100644 --- a/src/palette/qml/MuseScore/Palette/internal/PaletteTree.qml +++ b/src/palette/qml/MuseScore/Palette/internal/PaletteTree.qml @@ -320,7 +320,18 @@ StyledListView { onClosed: { enablePaletteAnimations = false; - palettePopup.active = false; + // Deactivating the loader while dragging will cause a crash (#25848), so defer the deactivation... + if (!moreElementsPopup.isDragInProgress) { + palettePopup.active = false; + } + } + + onIsDragInProgressChanged: { + const deactivationWasDeferred = !moreElementsPopup.isOpened && palettePopup.active + if (!moreElementsPopup.isDragInProgress && deactivationWasDeferred) { + // We're now safe to deactivate the loader... + palettePopup.active = false + } } function scrollToPopupBottom() {