Skip to content

Commit 131bf33

Browse files
committed
Update Pointers every frame, if not already updated.
1 parent 8452213 commit 131bf33

1 file changed

Lines changed: 23 additions & 8 deletions

File tree

src/input/InputPlugin.js

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -544,17 +544,35 @@ var InputPlugin = new Class({
544544
return false;
545545
}
546546

547-
// So the Gamepad and Keyboard update, regardless
547+
// The plugins should update every frame, regardless if there has been
548+
// any DOM input events or not (such as the Gamepad and Keyboard)
548549
this.pluginEvents.emit(Events.UPDATE, time, delta);
549550

550-
// Nothing else? Let's leave
551-
if (this._list.length === 0 || this._updatedThisFrame)
551+
// We can leave now if we've already updated once this frame via the immediate DOM event handlers
552+
if (this._updatedThisFrame)
552553
{
553554
this._updatedThisFrame = false;
554555

555556
return false;
556557
}
557558

559+
var i;
560+
var manager = this.manager;
561+
562+
var pointers = manager.pointers;
563+
var pointersTotal = manager.pointersTotal;
564+
565+
for (i = 0; i < pointersTotal; i++)
566+
{
567+
pointers[i].updateMotion();
568+
}
569+
570+
// No point going any further if there aren't any interactive objects
571+
if (this._list.length === 0)
572+
{
573+
return false;
574+
}
575+
558576
var rate = this.pollRate;
559577

560578
if (rate === -1)
@@ -578,15 +596,12 @@ var InputPlugin = new Class({
578596
}
579597

580598
// We got this far? Then we should poll for movement
581-
var manager = this.manager;
582-
583-
var pointers = manager.pointers;
584-
var pointersTotal = manager.pointersTotal;
585599
var captured = false;
586600

587-
for (var i = 0; i < pointersTotal; i++)
601+
for (i = 0; i < pointersTotal; i++)
588602
{
589603
var total = 0;
604+
590605
var pointer = pointers[i];
591606

592607
// Always reset this array

0 commit comments

Comments
 (0)