imgui_impl_osx.mm: import the glfw workaround to avoid missing mouse clicks. #3261
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR addresses the "missing clicks" issue on mac, which happens very easily with the trackpad when using the soft click feature (it generates very quick Press/Release events that often do not span over two frames).
It was also reported in #1992 . The ideal solution requires a refactoring to add event queues, but a simple workaround was suggested by just following the GLFW example, this is the approach I took here. It is slightly different because it does not rely on an API call to get the instant mouse state, but instead maintains the freshest mouseDown state locally with
g_MouseDown
, and only forwards it toImGuiIO
when there was no press during that same frame.I found that another more general fix was proposed in #2525 , but since there is already an event queue design in the pipe, it might make sense to just merge the quick fix for macOS for now?