mirror of
https://github.com/gorhill/uBlock.git
synced 2026-03-11 09:04:36 +00:00
[mv3] Prevent scrolling taking over moving dialog in picker
This commit is contained in:
parent
1e0c64076f
commit
2d2de3a53b
1 changed files with 16 additions and 6 deletions
|
|
@ -48,9 +48,8 @@ export const toolOverlay = {
|
|||
};
|
||||
this.moveable = qs$('aside:has(#move)');
|
||||
if ( this.moveable !== null ) {
|
||||
dom.on('aside #move', 'pointerdown', ev => {
|
||||
this.mover(ev);
|
||||
});
|
||||
dom.on('aside #move', 'pointerdown', ev => { this.mover(ev); });
|
||||
dom.on('aside #move', 'touchstart', this.eatTouchEvent);
|
||||
}
|
||||
this.onMessage({ what: 'startTool',
|
||||
url: msg.url,
|
||||
|
|
@ -180,7 +179,10 @@ export const toolOverlay = {
|
|||
this.moverCX0 = rect.x + rect.width / 2;
|
||||
this.moverCY0 = rect.y + rect.height / 2;
|
||||
dom.cl.add(this.moveable, 'moving');
|
||||
self.addEventListener('pointermove', this.moverMoveAsync, { capture: true });
|
||||
self.addEventListener('pointermove', this.moverMoveAsync, {
|
||||
passive: true,
|
||||
capture: true,
|
||||
});
|
||||
self.addEventListener('pointerup', this.moverStop, { capture: true, once: true });
|
||||
ev.stopPropagation();
|
||||
ev.preventDefault();
|
||||
|
|
@ -209,7 +211,6 @@ export const toolOverlay = {
|
|||
}
|
||||
},
|
||||
moverMoveAsync(ev) {
|
||||
if ( toolOverlay.moverTimer !== undefined ) { return; }
|
||||
if ( toolOverlay.moverIsTouch ) {
|
||||
const touch = ev.touches[0];
|
||||
toolOverlay.moverX1 = touch.pageX;
|
||||
|
|
@ -218,6 +219,7 @@ export const toolOverlay = {
|
|||
toolOverlay.moverX1 = ev.pageX;
|
||||
toolOverlay.moverY1 = ev.pageY;
|
||||
}
|
||||
if ( toolOverlay.moverTimer !== undefined ) { return; }
|
||||
toolOverlay.moverTimer = self.requestAnimationFrame(( ) => {
|
||||
toolOverlay.moverMove();
|
||||
});
|
||||
|
|
@ -225,11 +227,19 @@ export const toolOverlay = {
|
|||
moverStop(ev) {
|
||||
if ( dom.cl.has(toolOverlay.moveable, 'moving') === false ) { return; }
|
||||
dom.cl.remove(toolOverlay.moveable, 'moving');
|
||||
self.removeEventListener('pointermove', toolOverlay.moverMoveAsync, { capture: true });
|
||||
self.removeEventListener('pointermove', toolOverlay.moverMoveAsync, {
|
||||
passive: true,
|
||||
capture: true,
|
||||
});
|
||||
ev.target.releasePointerCapture(ev.pointerId);
|
||||
ev.stopPropagation();
|
||||
ev.preventDefault();
|
||||
},
|
||||
eatTouchEvent(ev) {
|
||||
if ( ev.target !== qs$('aside #move') ) { return; }
|
||||
ev.stopPropagation();
|
||||
ev.preventDefault();
|
||||
},
|
||||
moveable: null,
|
||||
moverIsTouch: false,
|
||||
moverX0: 0, moverY0: 0,
|
||||
|
|
|
|||
Loading…
Reference in a new issue