canonical / canonical/multipass
[gui] Top bar flicker on resize while notification present
- Dominant language
- C++
- Stars
- 9.2k
- Forks
- 828
- Avg merge
- 3d 1h
- Merged PRs (30d)
- 44
Description
**Describe the bug**
While the GUI has the bottom right notification (for example, downloading an image), maximizing the size of the GUI may put the window in a "bad state" where the top flickers continuously until the next resize event.
**To Reproduce**
How, and what happened?
1. Open GUI.
2. Launch a VM you do not have an image for.
3. Resize the window to the full screen (drag to the top)
**Expected behavior**
No flickering.
**Logs**
```
2025-12-19 17:43:24.397489 DEBUG Got Screen{frame: Rect.fromLTRB(0.0, 0.0, 1920.0, 1080.0), scaleFactor: 1.0, visibleFrame: Rect.fromLTRB(0.0, 32.0, 1920.0, 1080.0)}
2025-12-19 17:43:24.397546 DEBUG Saving window size Size(1920.0, 1001.0) for screen size Size(1920.0, 1048.0)
2025-12-19 17:43:26.201372 DEBUG Got Screen{frame: Rect.fromLTRB(0.0, 0.0, 1920.0, 1080.0), scaleFactor: 1.0, visibleFrame: Rect.fromLTRB(0.0, 32.0, 1920.0, 1080.0)}
2025-12-19 17:43:26.201438 DEBUG Saving window size Size(1680.0, 1003.0) for screen size Size(1920.0, 1048.0)
2025-12-19 17:43:31.664417 DEBUG Got Screen{frame: Rect.fromLTRB(0.0, 0.0, 1920.0, 1080.0), scaleFactor: 1.0, visibleFrame: Rect.fromLTRB(0.0, 32.0, 1920.0, 1080.0)}
2025-12-19 17:43:31.664480 DEBUG Saving window size Size(1920.0, 1001.0) for screen size Size(1920.0, 1048.0)
2025-12-19 17:43:33.617903 DEBUG Got Screen{frame: Rect.fromLTRB(0.0, 0.0, 1920.0, 1080.0), scaleFactor: 1.0, visibleFrame: Rect.fromLTRB(0.0, 32.0, 1920.0, 1080.0)}
2025-12-19 17:43:33.618007 DEBUG Saving window size Size(1680.0, 1003.0) for screen size Size(1920.0, 1048.0)
2025-12-19 17:43:35.682511 DEBUG Got Screen{frame: Rect.fromLTRB(0.0, 0.0, 1920.0, 1080.0), scaleFactor: 1.0, visibleFrame: Rect.fromLTRB(0.0, 32.0, 1920.0, 1080.0)}
2025-12-19 17:43:35.682571 DEBUG Saving window size Size(1680.0, 1003.0) for screen size Size(1920.0, 1048.0)
^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A^[[A2025-12-19 17:43:52.665611 DEBUG Got Screen{frame: Rect.fromLTRB(0.0, 0.0, 1920.0, 1080.0), scaleFactor: 1.0, visibleFrame: Rect.fromLTRB(0.0, 32.0, 1920.0, 1080.0)}
2025-12-19 17:43:52.665693 DEBUG Saving window size Size(1920.0, 1001.0) for screen size Size(1920.0, 1048.0)
2025-12-19 17:43:54.650400 DEBUG Got Screen{frame: Rect.fromLTRB(0.0, 0.0, 1920.0, 1080.0), scaleFactor: 1.0, visibleFrame: Rect.fromLTRB(0.0, 32.0, 1920.0, 1080.0)}
2025-12-19 17:43:54.650506 DEBUG Saving window size Size(1680.0, 1003.0) for screen size Size(1920.0, 1048.0)
2025-12-19 17:44:01.149137 DEBUG Got Screen{frame: Rect.fromLTRB(0.0, 0.0, 1920.0, 1080.0), scaleFactor: 1.0, visibleFrame: Rect.fromLTRB(0.0, 32.0, 1920.0, 1080.0)}
2025-12-19 17:44:01.149219 DEBUG Saving window size Size(1920.0, 1001.0) for screen size Size(1920.0, 1048.0)
2025-12-19 17:44:02.199390 DEBUG Got Screen{frame: Rect.fromLTRB(0.0, 0.0, 1920.0, 1080.0), scaleFactor: 1.0, visibleFrame: Rect.fromLTRB(0.0, 32.0, 1920.0, 1080.0)}
2025-12-19 17:44:02.199470 DEBUG Saving window size Size(960.0, 477.0) for screen size Size(1920.0, 1048.0)
2025-12-19 17:44:05.551404 DEBUG Got Screen{frame: Rect.fromLTRB(0.0, 0.0, 1920.0, 1080.0), scaleFactor: 1.0, visibleFrame: Rect.fromLTRB(0.0, 32.0, 1920.0, 1080.0)}
2025-12-19 17:44:05.551489 DEBUG Saving window size Size(1680.0, 1003.0) for screen size Size(1920.0, 1048.0)
2025-12-19 17:44:07.148714 DEBUG Got Screen{frame: Rect.fromLTRB(0.0, 0.0, 1920.0, 1080.0), scaleFactor: 1.0, visibleFrame: Rect.fromLTRB(0.0, 32.0, 1920.0, 1080.0)}
2025-12-19 17:44:07.148879 DEBUG Saving window size Size(1920.0, 1001.0) for screen size Size(1920.0, 1048.0)
2025-12-19 17:44:09.168801 DEBUG Got Screen{frame: Rect.fromLTRB(0.0, 0.0, 1920.0, 1080.0), scaleFactor: 1.0, visibleFrame: Rect.fromLTRB(0.0, 32.0, 1920.0, 1080.0)}
2025-12-19 17:44:09.168961 DEBUG Saving window size Size(1680.0, 1003.0) for screen size Size(1920.0, 1048.0)
```
**Additional info**
- OS: Ubuntu 24.04
- Compositor: X11
- CPU architecture or model: x86
- `multipass version`: edge
https://github.com/user-attachments/assets/33aa7350-e040-47f8-b2cc-1fe5121c5c32
Contributor guide
Assessment
This issue has not been assessed yet.