@@ -48,9 +48,8 @@ export const toolOverlay = {
48
48
} ;
49
49
this . moveable = qs$ ( 'aside:has(#move)' ) ;
50
50
if ( this . moveable !== null ) {
51
- dom . on ( 'aside #move' , 'pointerdown' , ev => {
52
- this . mover ( ev ) ;
53
- } ) ;
51
+ dom . on ( 'aside #move' , 'pointerdown' , ev => { this . mover ( ev ) ; } ) ;
52
+ dom . on ( 'aside #move' , 'touchstart' , this . eatTouchEvent ) ;
54
53
}
55
54
this . onMessage ( { what : 'startTool' ,
56
55
url : msg . url ,
@@ -180,7 +179,10 @@ export const toolOverlay = {
180
179
this . moverCX0 = rect . x + rect . width / 2 ;
181
180
this . moverCY0 = rect . y + rect . height / 2 ;
182
181
dom . cl . add ( this . moveable , 'moving' ) ;
183
- self . addEventListener ( 'pointermove' , this . moverMoveAsync , { capture : true } ) ;
182
+ self . addEventListener ( 'pointermove' , this . moverMoveAsync , {
183
+ passive : true ,
184
+ capture : true ,
185
+ } ) ;
184
186
self . addEventListener ( 'pointerup' , this . moverStop , { capture : true , once : true } ) ;
185
187
ev . stopPropagation ( ) ;
186
188
ev . preventDefault ( ) ;
@@ -209,7 +211,6 @@ export const toolOverlay = {
209
211
}
210
212
} ,
211
213
moverMoveAsync ( ev ) {
212
- if ( toolOverlay . moverTimer !== undefined ) { return ; }
213
214
if ( toolOverlay . moverIsTouch ) {
214
215
const touch = ev . touches [ 0 ] ;
215
216
toolOverlay . moverX1 = touch . pageX ;
@@ -218,18 +219,27 @@ export const toolOverlay = {
218
219
toolOverlay . moverX1 = ev . pageX ;
219
220
toolOverlay . moverY1 = ev . pageY ;
220
221
}
222
+ if ( toolOverlay . moverTimer !== undefined ) { return ; }
221
223
toolOverlay . moverTimer = self . requestAnimationFrame ( ( ) => {
222
224
toolOverlay . moverMove ( ) ;
223
225
} ) ;
224
226
} ,
225
227
moverStop ( ev ) {
226
228
if ( dom . cl . has ( toolOverlay . moveable , 'moving' ) === false ) { return ; }
227
229
dom . cl . remove ( toolOverlay . moveable , 'moving' ) ;
228
- self . removeEventListener ( 'pointermove' , toolOverlay . moverMoveAsync , { capture : true } ) ;
230
+ self . removeEventListener ( 'pointermove' , toolOverlay . moverMoveAsync , {
231
+ passive : true ,
232
+ capture : true ,
233
+ } ) ;
229
234
ev . target . releasePointerCapture ( ev . pointerId ) ;
230
235
ev . stopPropagation ( ) ;
231
236
ev . preventDefault ( ) ;
232
237
} ,
238
+ eatTouchEvent ( ev ) {
239
+ if ( ev . target !== qs$ ( 'aside #move' ) ) { return ; }
240
+ ev . stopPropagation ( ) ;
241
+ ev . preventDefault ( ) ;
242
+ } ,
233
243
moveable : null ,
234
244
moverIsTouch : false ,
235
245
moverX0 : 0 , moverY0 : 0 ,
0 commit comments