move actual-current-item to FocusScope

This commit is contained in:
Lukas Jung 2022-03-15 17:00:20 +01:00 committed by Lukas Jung
parent 9d18882f9d
commit 8240531e6e
2 changed files with 8 additions and 8 deletions

View file

@ -377,8 +377,7 @@ export ListView := ScrollView {
export StandardListView := ListView {
property<[StandardListViewItem]> model;
property<int> current-item: min(actual-current-item, model.length - 1);
property<int> actual-current-item: -1;
property<int> current-item: min(fs.actual-current-item, model.length - 1);
for item[idx] in model : Rectangle {
l := HorizontalLayout {
padding: 8px;
@ -393,10 +392,11 @@ export StandardListView := ListView {
touch := TouchArea {
width: parent.width;
height: parent.height;
clicked => { actual-current-item = idx; }
clicked => { fs.actual-current-item = idx; }
}
}
FocusScope {
fs := FocusScope {
property<int> actual-current-item: -1;
key-pressed(event) => {
if (event.text == Keys.UpArrow && current-item > 0) {
actual-current-item -= 1;

View file

@ -69,18 +69,18 @@ export ListView := ScrollView {
export StandardListView := ListView {
property<[StandardListViewItem]> model;
property<int> current-item: min(actual-current-item, model.length - 1);
property<int> actual-current-item: -1;
property<int> current-item: min(fs.actual-current-item, model.length - 1);
for item[i] in model : NativeStandardListViewItem {
item: item;
index: i;
is-selected: current-item == i;
TouchArea {
clicked => { actual-current-item = i; }
clicked => { fs.actual-current-item = i; }
has-hover <=> parent.has-hover;
}
}
FocusScope {
fs := FocusScope {
property<int> actual-current-item: -1;
key-pressed(event) => {
if (event.text == Keys.UpArrow && current-item > 0) {
actual-current-item -= 1;