@@ -30,7 +30,7 @@ pub struct Keyboard {
30
30
pub ( crate ) keys : RefCell < Vec < Key > > ,
31
31
page : Cell < Page > ,
32
32
picker : RefCell < WeakRef < Picker > > ,
33
- pub ( crate ) selected : RefCell < Option < usize > > ,
33
+ pub ( crate ) selected : Cell < Option < usize > > ,
34
34
}
35
35
36
36
impl Keyboard {
@@ -77,7 +77,7 @@ impl Keyboard {
77
77
keys : RefCell :: new ( keys) ,
78
78
page : Cell :: new ( Page :: Layer1 ) ,
79
79
picker : RefCell :: new ( WeakRef :: new ( ) ) ,
80
- selected : RefCell :: new ( None ) ,
80
+ selected : Cell :: new ( None ) ,
81
81
} )
82
82
}
83
83
@@ -123,7 +123,7 @@ impl Keyboard {
123
123
kb. page . set ( page. unwrap_or ( Page :: Layer1 ) ) ;
124
124
let layer = kb. layer ( ) ;
125
125
if layer != last_layer {
126
- if let Some ( i) = * kb. selected . borrow ( ) {
126
+ if let Some ( i) = kb. selected . get ( ) {
127
127
let keys = kb. keys . borrow ( ) ;
128
128
let k = & keys[ i] ;
129
129
k. deselect ( & picker, last_layer) ;
@@ -226,7 +226,7 @@ impl Keyboard {
226
226
227
227
let keys = kb. keys . borrow ( ) ;
228
228
229
- if let Some ( selected) = kb. selected . borrow_mut ( ) . take ( ) {
229
+ if let Some ( selected) = kb. selected . replace ( None ) {
230
230
keys[ selected] . deselect ( & picker, kb. layer ( ) ) ;
231
231
if i == selected {
232
232
// Allow deselect
@@ -240,7 +240,7 @@ impl Keyboard {
240
240
k. select ( & picker, kb. layer ( ) ) ;
241
241
}
242
242
243
- * kb. selected . borrow_mut ( ) = Some ( i) ;
243
+ kb. selected . set ( Some ( i) ) ;
244
244
} ) ;
245
245
}
246
246
0 commit comments