• stuartmorgan's avatar
    Restructure the Windows app template (#53600) · 2d623278
    stuartmorgan authored
    This moves the app template more toward being a more generic starting
    point for any Flutter application, eliminating some hard-code
    assumptions about there being a single window/engine pair that is
    directly bound to the life of the application:
    - Moves the runloop into its own class, making it capable of servicing
      any number of engine instances.
    - Moves the logic for setting up a window containing only a Flutter view
      into a window subclass for ease of re-use.
    - Makes quit-on-window-close an optional property. (Long term this
      should be even more generic, like a quit-when-last-window-closes
      option, but this is a short-term improvement that removes the binding
      between the runloop and the window).
    - Allows for multiple instances of Win32Window to exist without issues
      relating to the window class registration.
    
    Since there are getting to be a non-trivial number of files associated
    with the runner, this moves the source into a runner/ directory, as is
    already done on some other platforms.
    
    Note that creating multiple Flutter windows at the same time still
    doesn't work correctly even with this change, but this addresses some of
    the known issues, and makes it easier to test in the future (e.g., for
    debugging engine-level issues with multiple instances).
    
    Fixes #45397
    2d623278
run_loop.cpp 2.19 KB