@@ -655,45 +655,57 @@ fn detect_interaction(response: &Response) -> Option<Interaction> {
655655
656656 let pointer = response. ctx . input ( ) . pointer . clone ( ) ;
657657
658- let mut memory = response. ctx . memory ( ) ;
659- let detection_finish_flag: & mut bool = & mut memory
660- . data
661- . get_temp_mut_or ( response. id , DetectionFinishFlag ( false ) )
662- . 0 ;
658+ let set_flag = |value| {
659+ response
660+ . ctx
661+ . memory ( )
662+ . data
663+ . get_temp_mut_or ( response. id , DetectionFinishFlag ( false ) )
664+ . 0 = value;
665+ } ;
666+
667+ let get_flag = || {
668+ response
669+ . ctx
670+ . memory ( )
671+ . data
672+ . get_temp_mut_or ( response. id , DetectionFinishFlag ( false ) )
673+ . 0
674+ } ;
663675
664676 if !pointer. any_down ( ) {
665- * detection_finish_flag = false ;
677+ set_flag ( false ) ;
666678 }
667679
668- if !* detection_finish_flag && response. clicked ( ) {
669- * detection_finish_flag = true ;
680+ if !get_flag ( ) && response. clicked ( ) {
681+ set_flag ( true ) ;
670682 return Some ( Clicked ) ;
671683 }
672684
673685 if response. drag_released ( ) {
674686 return Some ( DragReleased ) ;
675687 }
676688
677- if !* detection_finish_flag && response. dragged ( ) {
689+ if !get_flag ( ) && response. dragged ( ) {
678690 let origin = pointer. press_origin ( ) . unwrap ( ) ;
679691 if let Some ( pos) = pointer. hover_pos ( ) {
680692 let dx = ( pos - origin) . length_sq ( ) ;
681693 if dx > MAX_CLICK_DIST * MAX_CLICK_DIST {
682- * detection_finish_flag = true ;
694+ set_flag ( true ) ;
683695 return Some ( DragStarted { origin } ) ;
684696 }
685697 }
686698
687699 let dt = response. ctx . input ( ) . time - pointer. press_start_time ( ) . unwrap ( ) ;
688700 if dt > MAX_CLICK_DURATION {
689- * detection_finish_flag = true ;
701+ set_flag ( true ) ;
690702 return Some ( DragStarted { origin } ) ;
691703 }
692704
693705 return None ;
694706 }
695707
696- if * detection_finish_flag && response. dragged ( ) {
708+ if get_flag ( ) && response. dragged ( ) {
697709 return Some ( Dragged ) ;
698710 }
699711
0 commit comments