mirror of
https://github.com/psychopy/psychojs.git
synced 2025-05-10 10:40:54 +00:00
even better pointerdown handling;
This commit is contained in:
parent
d60e9273f1
commit
1e3d524192
@ -257,6 +257,7 @@ export class Slider extends util.mix(VisualStim).with(ColorMixin, WindowMixin)
|
||||
this._psychoJS.experimentLogger.exp(`Created ${this.name} = ${this.toString()}`);
|
||||
}
|
||||
|
||||
this._handlePointerDownBinded = this._handlePointerDown.bind(this);
|
||||
this._handlePointerUpBinded = this._handlePointerUp.bind(this);
|
||||
this._handlePointerMoveBinded = this._handlePointerMove.bind(this);
|
||||
}
|
||||
@ -846,6 +847,27 @@ export class Slider extends util.mix(VisualStim).with(ColorMixin, WindowMixin)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle pointerdown event.
|
||||
*
|
||||
* @name module:visual.Slider#_handlePointerDown
|
||||
* @private
|
||||
*/
|
||||
_handlePointerDown (e) {
|
||||
if (e.data.button === 0)
|
||||
{
|
||||
this._markerDragging = true;
|
||||
if (!this._frozenMarker)
|
||||
{
|
||||
const mouseLocalPos_px = e.data.getLocalPosition(this._pixi);
|
||||
const rating = this._posToRating([mouseLocalPos_px.x, mouseLocalPos_px.y]);
|
||||
this.setMarkerPos(rating);
|
||||
}
|
||||
}
|
||||
|
||||
e.stopPropagation();
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle pointermove event.
|
||||
*
|
||||
@ -898,32 +920,7 @@ export class Slider extends util.mix(VisualStim).with(ColorMixin, WindowMixin)
|
||||
*/
|
||||
_addEventListeners ()
|
||||
{
|
||||
this._marker.pointerdown = (e) =>
|
||||
{
|
||||
if (e.data.button === 0)
|
||||
{
|
||||
this._markerDragging = true;
|
||||
}
|
||||
|
||||
e.stopPropagation();
|
||||
};
|
||||
|
||||
this._pixi.pointerdown = (e) =>
|
||||
{
|
||||
if (e.data.button === 0)
|
||||
{
|
||||
this._markerDragging = true;
|
||||
if (!this._frozenMarker)
|
||||
{
|
||||
const mouseLocalPos_px = e.data.getLocalPosition(this._pixi);
|
||||
const rating = this._posToRating([mouseLocalPos_px.x, mouseLocalPos_px.y]);
|
||||
this.setMarkerPos(rating);
|
||||
}
|
||||
}
|
||||
|
||||
e.stopPropagation();
|
||||
};
|
||||
|
||||
this._pixi.on("pointerdown", this._handlePointerDownBinded);
|
||||
this._win._rootContainer.on("pointermove", this._handlePointerMoveBinded);
|
||||
this._win._rootContainer.on("pointerup", this._handlePointerUpBinded);
|
||||
}
|
||||
@ -938,8 +935,7 @@ export class Slider extends util.mix(VisualStim).with(ColorMixin, WindowMixin)
|
||||
{
|
||||
if (this._pixi)
|
||||
{
|
||||
this._marker.pointerdown = undefined;
|
||||
this._pixi.pointerdown = undefined;
|
||||
this._pixi.off("pointerdown", this._handlePointerDownBinded);
|
||||
}
|
||||
this._win._rootContainer.off("pointermove", this._handlePointerMoveBinded);
|
||||
this._win._rootContainer.off("pointerup", this._handlePointerUpBinded);
|
||||
|
Loading…
Reference in New Issue
Block a user