Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR introduces a major refactor of the desktop_multi_window plugin, redesigning the window management system across Windows, Linux, and macOS platforms. The refactor replaces integer-based window IDs with UUID strings, introduces a new channel-based communication system with configurable modes (unidirectional/bidirectional), and adds a WindowConfiguration API for better control over window creation.
Key changes:
- Window identification system migrated from integers to UUID strings
- New
WindowMethodChannelAPI with unidirectional and bidirectional communication modes - Refactored window management architecture removing intermediate base classes
- Enhanced example application demonstrating new features including video playback and window lifecycle management
Reviewed Changes
Copilot reviewed 75 out of 77 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| windows/window_configuration.h | New header defining WindowConfiguration struct for window creation parameters |
| windows/window_channel_plugin.h/cc | New plugin implementing cross-window method channel communication |
| windows/win32_window.h/cpp | Refactored Win32 window wrapper with theme support |
| windows/multi_window_manager.h/cc | Redesigned manager using UUID window IDs and notification system |
| windows/desktop_multi_window_plugin.cpp | Updated plugin with window-specific method routing |
| macos/Classes/WindowChannel.swift | Redesigned channel system with registry and mode support |
| macos/Classes/FlutterWindow.swift | Simplified window wrapper with event notification |
| macos/Classes/FlutterMultiWindowPlugin.swift | Integrated manager within plugin class |
| linux/window_channel_plugin.h/cc | Linux implementation of channel plugin |
| linux/multi_window_manager.h/cc | Linux manager with GTK window handling |
| linux/desktop_multi_window_plugin.cc | Updated for new window management |
| lib/src/window_controller.dart | Complete API redesign with async patterns |
| lib/src/window_channel.dart | New Dart channel API with error handling |
| lib/src/window_configuration.dart | Configuration class for window creation |
| example/* | Updated examples demonstrating new features |
| pubspec.yaml | Version bump to 0.3.0 with SDK requirement update |
| README.md | Comprehensive documentation rewrite |
Comments suppressed due to low confidence (1)
packages/desktop_multi_window/example/windows/runner/win32_window.h:1
- Corrected spelling of 'registar' to 'registrar'.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
packages/desktop_multi_window/linux/desktop_multi_window_plugin.cc
Outdated
Show resolved
Hide resolved
…n.cc Co-authored-by: Copilot <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
trying to fix
desktop_multi_window#127Closes #443
Closes #432
Closes #423
Closes #420
Closes #419
Closes #412
Closes #388
Closes #392
Closes #356
Closes #352
Closes #342
Closes #328
Closes #319
Closes #304
Closes #293
Closes #289
Closes #284
Closes #283
Closes #266
Closes #259
Closes #252
Closes #225
Closes #221
Closes #141
Closes #137
Closes #128
Closes #127
Closes #109
Closes #102
Closes #80
Closes #71