@@ -290,8 +290,9 @@ impl Keyboard {
290
290
}
291
291
292
292
fn connect_signals ( & self ) {
293
- let kb = self . clone ( ) ;
294
- self . inner ( ) . stack . connect_property_visible_child_notify ( move |stack| {
293
+ let kb = self ;
294
+
295
+ self . inner ( ) . stack . connect_property_visible_child_notify ( clone ! ( @weak kb => @default -panic, move |stack| {
295
296
let picker = match kb. inner( ) . picker. borrow( ) . upgrade( ) {
296
297
Some ( picker) => picker,
297
298
None => { return ; } ,
@@ -314,20 +315,21 @@ impl Keyboard {
314
315
k. select( & picker, layer) ;
315
316
}
316
317
}
317
- } ) ;
318
+ } ) ) ;
318
319
319
- let kb = self . clone ( ) ;
320
- self . inner ( ) . brightness_scale . connect_value_changed ( move |this| {
320
+ self . inner ( ) . brightness_scale . connect_value_changed ( clone ! ( @weak kb => @default -panic, move |this| {
321
321
let value = this. get_value( ) as i32 ;
322
322
if let Err ( err) = kb. daemon( ) . set_brightness( kb. daemon_board( ) , value) {
323
323
eprintln!( "{}" , err) ;
324
324
}
325
325
println!( "{}" , value) ;
326
326
327
- } ) ;
327
+ } ) ) ;
328
328
}
329
329
330
330
fn add_pages ( & self ) {
331
+ let kb = self ;
332
+
331
333
for page in Page :: iter_all ( ) {
332
334
let fixed = gtk:: Fixed :: new ( ) ;
333
335
self . inner ( ) . stack . add_titled ( & fixed, page. name ( ) , page. name ( ) ) ;
@@ -375,33 +377,30 @@ impl Keyboard {
375
377
( button, label)
376
378
} ;
377
379
378
- {
379
- let kb = self . clone ( ) ;
380
- button. connect_clicked ( 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
- }
394
- }
380
+ 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( ) ;
395
387
396
- {
397
- let k = & keys[ i] ;
398
- println ! ( "{:#?}" , k) ;
399
- k. select ( & picker, kb. layer ( ) ) ;
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 ;
400
393
}
394
+ }
401
395
402
- kb. inner ( ) . selected . set ( Some ( i) ) ;
403
- } ) ;
404
- }
396
+ {
397
+ let k = & keys[ i] ;
398
+ println!( "{:#?}" , k) ;
399
+ k. select( & picker, kb. layer( ) ) ;
400
+ }
401
+
402
+ kb. inner( ) . selected. set( Some ( i) ) ;
403
+ } ) ) ;
405
404
406
405
let mut keys = self . inner ( ) . keys . borrow_mut ( ) ;
407
406
let k = & mut keys[ i] ;
0 commit comments