diff --git a/src/framework/uicomponents/qml/MuseScore/UiComponents/MenuButton.qml b/src/framework/uicomponents/qml/MuseScore/UiComponents/MenuButton.qml index f8d66a8942..0220a451f1 100644 --- a/src/framework/uicomponents/qml/MuseScore/UiComponents/MenuButton.qml +++ b/src/framework/uicomponents/qml/MuseScore/UiComponents/MenuButton.qml @@ -48,8 +48,6 @@ FlatButton { StyledMenuLoader { id: menuLoader - menuAnchorItem: ui.rootItem - onHandleAction: { root.handleAction(actionCode, actionIndex) } diff --git a/src/palette/qml/MuseScore/Palette/internal/MoreElementsPopup.qml b/src/palette/qml/MuseScore/Palette/internal/MoreElementsPopup.qml index ecf4dc6806..acded21b34 100644 --- a/src/palette/qml/MuseScore/Palette/internal/MoreElementsPopup.qml +++ b/src/palette/qml/MuseScore/Palette/internal/MoreElementsPopup.qml @@ -60,7 +60,6 @@ StyledPopupView { signal addElementsRequested(var mimeDataList) - navigation.name: "MoreElementsPopup" navigation.direction: NavigationPanel.Both diff --git a/src/palette/qml/MuseScore/Palette/internal/Palette.qml b/src/palette/qml/MuseScore/Palette/internal/Palette.qml index e6952effd1..9484e8a7b6 100644 --- a/src/palette/qml/MuseScore/Palette/internal/Palette.qml +++ b/src/palette/qml/MuseScore/Palette/internal/Palette.qml @@ -53,6 +53,8 @@ GridView { property bool enableAnimations: true + property bool isInVisibleArea: true + property NavigationPanel navigationPanel: null property int navigationRow: 0 property int navigationCol: 1 @@ -173,6 +175,8 @@ GridView { anchors.fill: parent + visible: paletteView.isInVisibleArea + navigation.panel: paletteView.navigationPanel //! NOTE Just Up/Down navigation now navigation.row: paletteView.ncells + paletteView.navigationRow @@ -390,7 +394,6 @@ GridView { moreButton.forceActiveFocus(); } else { currentIndex = 0; - currentItem.forceActiveFocus(); } } @@ -399,7 +402,6 @@ GridView { moreButton.forceActiveFocus(); } else { currentIndex = count - 1; - currentItem.forceActiveFocus(); } } @@ -408,7 +410,6 @@ GridView { const matchedIndexList = paletteModel.match(modelIndex, Qt.ToolTipRole, str); if (matchedIndexList.length) { currentIndex = matchedIndexList[0].row; - currentItem.forceActiveFocus(); return true; } return false; diff --git a/src/palette/qml/MuseScore/Palette/internal/PaletteTree.qml b/src/palette/qml/MuseScore/Palette/internal/PaletteTree.qml index da278dade1..489ad4e6c2 100644 --- a/src/palette/qml/MuseScore/Palette/internal/PaletteTree.qml +++ b/src/palette/qml/MuseScore/Palette/internal/PaletteTree.qml @@ -58,7 +58,6 @@ ListView { Accessible.name: qsTrc("palette", "Palettes Tree, contains %n palette(s)", "", count) - NavigationPanel { id: keynavTree name: "PalettesTree" @@ -450,6 +449,8 @@ ListView { hovered: control.hovered text: model.display + isInVisibleArea: control.y >= paletteTree.contentY && control.y < (paletteTree.contentY + paletteTree.height) + navigationPanel: keynavTree navigationRow: control.navigationRow @@ -523,6 +524,11 @@ ListView { paletteController: paletteTree.paletteController selectionModel: paletteSelectionModel + isInVisibleArea: { + var mainPaletteBottom = control.y + mainPalette.height + return mainPaletteBottom >= paletteTree.contentY && mainPaletteBottom < (paletteTree.contentY + paletteTree.height) + } + showMoreButton: !filter.length onMoreButtonClicked: control.togglePopup(btn); diff --git a/src/palette/qml/MuseScore/Palette/internal/TreePaletteHeader.qml b/src/palette/qml/MuseScore/Palette/internal/TreePaletteHeader.qml index 600ccbb954..293141d9d4 100644 --- a/src/palette/qml/MuseScore/Palette/internal/TreePaletteHeader.qml +++ b/src/palette/qml/MuseScore/Palette/internal/TreePaletteHeader.qml @@ -37,6 +37,8 @@ Item { property bool custom: false property bool unresolved: false + property bool isInVisibleArea: true + property PaletteProvider paletteProvider property var modelIndex: null @@ -128,7 +130,7 @@ Item { z: 1000 - visible: root.expanded || root.hovered || isMenuOpened || navigation.active + visible: (root.expanded || root.hovered || isMenuOpened || navigation.active) && root.isInVisibleArea navigation.panel: root.navigationPanel navigation.row: root.navigationRow