File tree Expand file tree Collapse file tree 4 files changed +28
-2
lines changed Expand file tree Collapse file tree 4 files changed +28
-2
lines changed Original file line number Diff line number Diff line change 4444 needs : [lint, data]
4545 runs-on : macos-15
4646 env :
47- MOZC_SHA : 88b1dcae03a0a16192586dca3da157dad64f0e2f
47+ MOZC_SHA : ce1fb7fe48efb1d85f8e54eff1b05e9e692bf0d4
4848 strategy :
4949 fail-fast : false
5050 matrix :
Original file line number Diff line number Diff line change @@ -111,6 +111,21 @@ struct BackspaceView: View {
111111 var vMargin : CGFloat ? = nil
112112 var radius : CGFloat ? = nil
113113
114+ @State private var deleteTimer : Timer ? = nil
115+
116+ func startDelete( ) {
117+ stopDelete ( )
118+ deleteTimer = Timer . scheduledTimer ( withTimeInterval: 0.08 , repeats: true ) { _ in
119+ virtualKeyboardView. resetLayerIfNotLocked ( )
120+ client. keyPressed ( " " , " Backspace " )
121+ }
122+ }
123+
124+ func stopDelete( ) {
125+ deleteTimer? . invalidate ( )
126+ deleteTimer = nil
127+ }
128+
114129 var body : some View {
115130 Image ( systemName: " delete.left " )
116131 . resizable ( )
@@ -130,15 +145,24 @@ struct BackspaceView: View {
130145 virtualKeyboardView. resetLayerIfNotLocked ( )
131146 client. keyPressed ( " " , " Backspace " )
132147 } ,
148+ onLongPress: {
149+ startDelete ( )
150+ } ,
133151 onSlide: { step in
134152 virtualKeyboardView. slideBackspace ( step)
153+ } ,
154+ onRelease: {
155+ stopDelete ( )
135156 }
136157 ) ,
137158 pressedView: Image ( systemName: " delete.left.fill " )
138159 . resizable ( )
139160 . aspectRatio ( contentMode: . fit)
140161 . frame ( height: height * 0.4 )
141162 )
163+ . onDisappear {
164+ stopDelete ( )
165+ }
142166 }
143167}
144168
Original file line number Diff line number Diff line change @@ -6,6 +6,7 @@ struct GestureAction {
66 var onLongPress : ( ( ) -> Void ) ? = nil
77 var onSwipe : ( ( SwipeDirection ) -> Void ) ? = nil
88 var onSlide : ( ( Int ) -> Void ) ? = nil
9+ var onRelease : ( ( ) -> Void ) ? = nil
910}
1011
1112enum SwipeDirection {
@@ -151,6 +152,7 @@ struct KeyModifier: ViewModifier {
151152 . onEnded { value in
152153 clearBubble ( )
153154 defer {
155+ action. onRelease ? ( )
154156 isPressed = false
155157 startLocation = nil
156158 lastLocation = nil
You can’t perform that action at this time.
0 commit comments