Skip to content

Commit e230a5c

Browse files
ids1024jackpot51
authored andcommitted
improv: Define application::Keyboard::set_selected()
1 parent e999e65 commit e230a5c

File tree

1 file changed

+25
-21
lines changed

1 file changed

+25
-21
lines changed

src/application/keyboard.rs

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -378,28 +378,12 @@ impl Keyboard {
378378
};
379379

380380
button.connect_clicked(clone!(@weak kb => @default-panic, move |_| {
381-
let picker = match kb.inner().picker.borrow().upgrade() {
382-
Some(picker) => picker,
383-
None => { return; },
384-
};
385-
386-
let keys = kb.inner().keys.borrow();
387-
388-
if let Some(selected) = kb.inner().selected.replace(None) {
389-
keys[selected].deselect(&picker, kb.layer());
390-
if i == selected {
391-
// Allow deselect
392-
return;
393-
}
381+
// Deselect
382+
if kb.inner().selected.get() == Some(i) {
383+
kb.set_selected(None);
384+
} else {
385+
kb.set_selected(Some(i));
394386
}
395-
396-
{
397-
let k = &keys[i];
398-
println!("{:#?}", k);
399-
k.select(&picker, kb.layer());
400-
}
401-
402-
kb.inner().selected.set(Some(i));
403387
}));
404388

405389
let mut keys = self.inner().keys.borrow_mut();
@@ -422,4 +406,24 @@ impl Keyboard {
422406
}
423407
}
424408
}
409+
410+
fn set_selected(&self, i: Option<usize>) {
411+
let picker = match self.inner().picker.borrow().upgrade() {
412+
Some(picker) => picker,
413+
None => { return; },
414+
};
415+
let keys = self.inner().keys.borrow();
416+
417+
if let Some(selected) = self.inner().selected.get() {
418+
keys[selected].deselect(&picker, self.layer());
419+
}
420+
421+
if let Some(i) = i {
422+
let k = &keys[i];
423+
println!("{:#?}", k);
424+
k.select(&picker, self.layer());
425+
}
426+
427+
self.inner().selected.set(i);
428+
}
425429
}

0 commit comments

Comments
 (0)