-
Notifications
You must be signed in to change notification settings - Fork 108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Migrate from GLFW to SDL #798
Comments
Hate to say it (actually I kinda enjoy it, sorry 🤣), but didn't I propose also switching to SDL2 already when we switched to imgui? It's a much newer and better backend than glfw. But glad you're finally convinced. It'd open up some more interesting ports as well. (also offering dev time here to actually make it happen) |
Tagging just for posterity: it appears ocornut/imgui#7733 (a minor annoyance that had been plaguing us for a while) is rooted in the same bug and can also be fixed by leaving GLFW. |
FYI if there are hacks to do on the GLFW backend its worth adding them imho. All backends have hacks/quirks, as the windowing emulation of multi-viewports is generally a bit out of the typical expected scope of SDL/GLFW. I would just need to understand exactly what’s the low level issue (perhaps that info is already detailed in existing high-level issues). |
It appears the root cause is glfw/glfw#1562 (comment). If you can add a workaround on the ImGui side, that would be great. |
I posted a tentative workaround here: |
Keeping this open as a potential future trajectory for the project, but no longer a v0.2 priority now that there is an imgui workaround for the specific GLFW issues in play. |
GLFW has a bunch of bugs related to mouse handling on Linux causing false mouse-up events when a new platform window is created.
There may be ugly hacks we can do on the backend, but SDL doesn't have this issue so that's probably the best path forward. We only make 20ish GLFW API calls so the port shouldn't be too difficult.
See: ocornut/imgui#7922
The text was updated successfully, but these errors were encountered: