Skip to content

Add a window full-screen changed event #58

Description

@lijy91

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 that WM_SIZE arrives with SIZE_RESTORED, so it can't be detected from the size message.
  • Linux: window-state-event with GDK_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:

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions