canonical / canonical/multipass

[gui] Top bar flicker on resize while notification present

Open
#4,590 3 comments 0 reactions 1 assignee Claimed by @aviralgarg05 View on GitHub
needs triage research
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.