manually maintain mouse button press state
commit8a588880b7e7e808dc73e9e6b7e5eb7a42c1e2cb
authorKartik K. Agaram <vc@akkartik.com>
Sat, 2 Dec 2023 05:52:10 +0000 (1 21:52 -0800)
committerKartik K. Agaram <vc@akkartik.com>
Sat, 2 Dec 2023 05:56:35 +0000 (1 21:56 -0800)
tree6f6876bd9b06e5ce38b7e91ca0b67287f5cda129
parent9ed7c576e6731334cd9e36285b98a2703c6564e1
manually maintain mouse button press state

Just checking mouse.isDown works if the editor is the entirety of the
app, as is true in this fork. However, we often want to introduce other
widgets. We'd like tapping on them to not cause the selection to flash:
  https://news.ycombinator.com/context?id=38404923&submission=38397715

The right architecture to enforce this is: have each layer of the UI
maintain its own state machine between mouse_press and mouse_release
events. And only check the state machine in the next level down rather
than lower layers or the bottommost layer of raw LÖVE.
edit.lua
select.lua