Add a window full-screen changed event
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
Research direction
Start by tracing Window::SetFullScreen() and IsFullScreen() on macOS, Windows, and Linux. Review the listed native notifications and window-state event, including the Windows style and title-bar restoration concerns. Done means a full-screen change event is emitted for programmatic and user-triggered changes on each platform.
Written by the indexing model from the issue text.
Description
Window::SetFullScreen() / IsFullScreen() exist on all three desktop platforms, but there is no event when a window enters or leaves full screen. That includes changes the user triggers (the green button on macOS, F11 / the window manager on Linux). Apps that change their layout in full screen currently have to poll.
Proposal: add a WindowFullScreenChangedEvent (or an entered/left pair), emitted:
- macOS:
NSWindowDidEnterFullScreenNotification/NSWindowDidExitFullScreenNotification - Windows: from
SetFullScreen(), which is the only way in since Win32 has no native full-screen state. Note thatWM_SIZEarrives withSIZE_RESTORED, so it can't be detected from the size message. - Linux:
window-state-eventwithGDK_WINDOW_STATE_FULLSCREEN
It should also be checked that the Windows SetFullScreen() restores the style and title bar correctly on exit (see leanflutter/window_manager#579 and #569).
Background:
- leanflutter/window_manager#560: onWindowEnterFullScreen / onWindowLeaveFullScreen never fire on Windows
- leanflutter/window_manager#559: a draft PR for Windows full-screen handling
- Dominant language
- C++
- Stars
- 34
- Forks
- 7
- Avg merge
- 3d 1h
- Merged PRs (30d)
- 1
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from libnativeapi/nativeapi
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 45/100
libnativeapi/nativeapi#81 ·
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 45/100
libnativeapi/nativeapi#80 ·
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 35/100
libnativeapi/nativeapi#79 ·
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 45/100
libnativeapi/nativeapi#78 ·
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 45/100
libnativeapi/nativeapi#77 ·
All issues in libnativeapi/nativeapi
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
objectionary/eo-graphs#74 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 95/100
-
enhancement
Difficulty 1/5 Under an hour Newbie friendliness 88/100
QuantStack/git2cpp#187 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100