Skip to content

mouseButton contains incorrect value after pressing both mouse buttons and releasing one of them #6847

@servobot

Description

@servobot

Most appropriate sub-area of p5.js?

  • Accessibility
  • Color
  • Core/Environment/Rendering
  • Data
  • DOM
  • Events
  • Image
  • IO
  • Math
  • Typography
  • Utilities
  • WebGL
  • Build process
  • Unit testing
  • Internationalization
  • Friendly errors
  • Other (specify if possible)

p5.js version

1.9.0

Web browser and version

122.0.6261.95 (Official Build) (64-bit) (cohort: Stable)

Operating system

Windows 10 Home Edition

Steps to reproduce this

Steps:

  1. Press and hold left mouse button
  2. Press and hold right mouse button
  3. Release left mouse button
    • Expected: console logs left
    • Actual: console logs right

Snippet:

function setup() {
  createCanvas(400, 400);
}

function mouseReleased() {
  console.log(mouseButton);
}

function draw() {
  background(220);
}

Additional Context

I discovered this issue when implementing the game of Minesweeper. In that game, pressing and releasing both mouse buttons at the same time is the way to uncover all unmarked neighbors of a cell, and I found that I could not detect this condition reliably using mouseButton. I believe this is due to mouseButton being updated in mousePressed but not mouseReleased.

https://github.com/processing/p5.js/blob/main/src/events/mouse.js#L657
https://github.com/processing/p5.js/blob/main/src/events/mouse.js#L733

I have a pull request (with associated unit test) that appears to resolve the issue. This bug was previously reported in #5733, but the submitter resolved that issue as they found a workaround.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Completed

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions