From 10b13be6e3e3b45a2652c1ae7fdae06020354fff Mon Sep 17 00:00:00 2001 From: vicrodh <103399283+vicrodh@users.noreply.github.com> Date: Tue, 9 Jun 2026 15:45:24 -0600 Subject: [PATCH] =?UTF-8?q?fix(myqbz):=20detail=20row=20=E2=8B=AF=20menu?= =?UTF-8?q?=20was=20unclickable=20=E2=80=94=20open-item=20TouchArea=20sat?= =?UTF-8?q?=20on=20top?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The DetailRow had a full-row `row-ta` TouchArea (clicked -> open the item/album) declared AFTER the cell layout. In Slint a later-declared element paints ON TOP, so row-ta was frontmost over the whole row and captured every click -- including the ⋯ button -- so the menu never opened and the row just opened the album. Moved row-ta to be declared BEFORE the cell HorizontalLayout, so it sits behind the per-cell TouchAreas (checkbox / play / title / subtitle / ⋯) and only catches the empty gaps. The ⋯ menu (and the play overlay / title) now receive their clicks. cc --- .../ui/myqbz/MixtapeDetailView.slint | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/crates/qbz-slint/ui/myqbz/MixtapeDetailView.slint b/crates/qbz-slint/ui/myqbz/MixtapeDetailView.slint index 7b92d4d98..aba42f94c 100644 --- a/crates/qbz-slint/ui/myqbz/MixtapeDetailView.slint +++ b/crates/qbz-slint/ui/myqbz/MixtapeDetailView.slint @@ -200,6 +200,22 @@ component DetailRow inherits Rectangle { background: #ffffff0a; } + // Row click (open the item) — declared BEFORE the cell layout so it sits + // BEHIND the per-cell TouchAreas (checkbox / play / title / subtitle / ⋯). + // In Slint a later-declared element paints ON TOP, so the cell TouchAreas + // below capture their own clicks and row-ta only catches the gaps. (It used + // to be declared LAST — frontmost — which ate every click incl. the ⋯ button, + // so the menu never opened and the whole row just opened the album.) + row-ta := TouchArea { + clicked => { + if (root.select-mode) { + MyQbzDetailActions.toggle-item-select(root.item.position); + } else { + MyQbzDetailActions.open-item(root.item.source, root.item.item-type, root.item.source-item-id); + } + } + } + HorizontalLayout { padding-left: 12px; padding-right: 12px; @@ -468,18 +484,6 @@ component DetailRow inherits Rectangle { } } } - - // Row click (outside the interactive cells) — open the item. - row-ta := TouchArea { - // Sits below the cell TouchAreas (title/subtitle/play/menu/checkbox). - clicked => { - if (root.select-mode) { - MyQbzDetailActions.toggle-item-select(root.item.position); - } else { - MyQbzDetailActions.open-item(root.item.source, root.item.item-type, root.item.source-item-id); - } - } - } } // --- One GRID card (spec 12 §7) -----------------------------------------