fix(myqbz): detail row ⋯ menu was unclickable — open-item TouchArea sat on top

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
This commit is contained in:
vicrodh committed 2026-06-09 15:45:24 -06:00
1 parent 8b0df8325d
commit 10b13be6e3
1 file changed
+16 -12
@@ -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) -----------------------------------------