Skip to content

Reference the main window as the parent of NFD modals - #550

Merged
treellama merged 2 commits into
masterfrom
nfd-parent-windows
Jul 29, 2025
Merged

Reference the main window as the parent of NFD modals#550
treellama merged 2 commits into
masterfrom
nfd-parent-windows

Conversation

@Kolfering

@Kolfering Kolfering commented Jul 27, 2025

Copy link
Copy Markdown
Member

By doing so, the Aleph One window + the modal appear now as a single entry in the task bar (while they previously showed up as two distinct windows) and it's no longer possible to interact with the parent window while the modal is active. (preventing issues like the main window being accidentally hidden behind others etc)

The NFD code interfacing SDL2 with NFD has been directly copied into the Aleph One codebase since NFD directly includes SDL2 headers but our build system are expecting prefixed SDL2/ includes. The alternative would have been to patch in with a custom vcpkg port but that seemed excessive for a single 30 lines function.

This NFD parent feature currently supports windows, mac os and linux x11 for now. (with a comment noting that Wayland support will be added eventually and a draft PR btzy/nativefiledialog-extended#153)

This PR also fixes #401 for platforms where this NFD parent feature is enabled. The problem with #401 was that when making a call to NFD to display a modal window, SDL2 will get a window lost focus event followed right after by a window gained focus event. And since we pause the game on lost focus (and don't resume on gained focus), this led to the user having to click to resume gameplay when starting a film replay. The fix is to temporarily disable window events just for the NFD calls. (with the parent feature, we can be sure that when the modal closes, the main window is in front of the user)

…rent interaction / Window events are also discarded while a native dialog is used
@treellama
treellama merged commit 8f2904c into master Jul 29, 2025
16 checks passed
@treellama
treellama deleted the nfd-parent-windows branch July 29, 2025 00:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Saved films don't start playing when loaded

2 participants