Skip to content

[Windows] Verify: flashes and blank frames on start, show, restore and maximize #75

Closed

Description

@lijy91

These were reported against window_manager 0.5.x, whose platform code is gone: window_manager 0.6.0 is rebuilt on nativeapi. None of them has been checked against nativeapi yet. Each needs a reproduction with nativeapi (a Flutter app on the Window API), then a fix or a note that it no longer happens. Tick them off here as they're checked.

Activity

  1. lijy91 commented on Oct 7, 2026

    @lijy91
    MemberAuthor

    Replayed with the real nativeapi Flutter Window API in a real Flutter Windows app (Windows 11 build 26200, Flutter 3.47.6 debug): tools/gui/flutter_window_reports_test.ps1 builds the fixture tools/gui/window_reports_flutter.dart against the workspace's Dart packages, paints solid colours, and measures native geometry, styles, DWM caption buttons, pixels and frame-by-frame samples. No keyboard input; the only clicks are owner-guarded ones on the app's own window. The suite passes repeatedly on core 9d6b50d (workspace libnativeapi/nativeapi@2894880).

    • #428 — no white or black frame at startup (frames sampled from process start; the window only appears with its content).
    • #504 / #223 — sized and center()ed before the first frame: it appears where it stays, centred (as Windows measures the window, invisible resize borders included), no jump.
    • #412 / #572 — reproduced and fixed (9d6b50d): maximize() before the first show showed the window maximized at once, and the Flutter runner's own first-frame ShowWindow(SW_SHOWNORMAL) then restored it to the default size, with a black frame on the way. Maximize() on a window that is not shown yet now keeps it hidden with the request recorded; whatever shows it, it appears maximized from its first visible frame (IsMaximized() reports the request, Unmaximize() takes it back). Now: maximized from the first sample, still maximized 2 s later. Core test: window_startup_maximize_windows_test.
    • #383 — no white or black frame while maximize() runs (~50 frames per point).
    • #153 — no black frame while restoring from maximized.
    • #155 — no white or black frame once the window is visible again after hide() / show().
    • #578 — the window dragged by its title bar until 40 % is off screen and back (real owner-guarded drag): the uncovered part shows content at the first sample after release.

    All eight checked; closing.

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

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions