Flush mouseMove when initiating viewport dragging

We want to flush pending mouse moves before we initiate viewport
dragging.

Before this commit, there were scenarios where the _mouseButtonMask
would track a released button as being down.
This commit is contained in:
Adam Halim
2025-01-14 12:32:51 +01:00
parent d1548c12ec
commit 6383fa6384
2 changed files with 20 additions and 0 deletions

View File

@@ -898,6 +898,24 @@ describe('Remote Frame Buffer protocol client', function () {
expect(client._display.viewportChangePos).to.not.have.been.called;
});
it('should flush move events when initiating viewport drag', function () {
sendMouseMoveEvent(13, 9, 0x0, client);
sendMouseMoveEvent(14, 9, 0x0, client);
sendMouseButtonEvent(14, 9, true, 0x1, client);
expect(RFB.messages.pointerEvent).to.have.been.calledTwice;
expect(RFB.messages.pointerEvent.firstCall).to.have.been.calledWith(client._sock,
13, 9, 0x0);
expect(RFB.messages.pointerEvent.secondCall).to.have.been.calledWith(client._sock,
14, 9, 0x0);
RFB.messages.pointerEvent.resetHistory();
clock.tick(100);
expect(RFB.messages.pointerEvent).to.not.have.been.called;;
});
});
});