-
Notifications
You must be signed in to change notification settings - Fork 241
Description
A clear and concise description of what the bug is:
When using the desktop_multi_window plugin on macOS with a dual monitor setup, a subwindow that loses and then regains focus does not repaint its content. This leads to UI freeze or invisible input, until the window is manually resized or toggled fullscreen.
This issue does not occur when using a single monitor.
⸻
Reproduce Steps
Steps to reproduce the behavior:
1. Launch a Flutter application using the desktop_multi_window plugin.
2. Create a subwindow (NSWindow with its own FlutterViewController).
3. Move the subwindow to the secondary monitor.
4. Switch focus to another window or app.
5. Return focus to the subwindow.
6. Type into a text field — the input does not show.
7. Resize the subwindow manually.
8. The typed text suddenly appears (indicating delayed repaint).
⸻
Expected behavior
The subwindow should repaint immediately upon regaining focus, without requiring manual resizing or fullscreen toggling. Input and UI updates should be visible in real time.
⸻
(No screenshots needed — reproducible via text field input.)
⸻
Version (please complete the following information):
• Flutter Version: v3.29.2
• OS: macOS 15.3.2
• plugin: desktop_multi_window: 0.2.1
• Architecture: Apple Silicon (M1 Max)
This issue is reproducible only in a dual-monitor setup and is cleared when switching to fullscreen and back, or turning off one monitor.
Note:
The same application built with identical code runs correctly on Windows without this issue.
This suggests the problem is specific to the macOS implementation of desktop_multi_window or its interaction with macOS windowing and rendering systems.