Bug 487549

Summary: Custom size panel resizing in edit mode is laggy
Product: [Plasma] plasmashell Reporter: dmatteo002
Component: Edit ModeAssignee: dmatteo002
Status: RESOLVED FIXED    
Severity: minor CC: dmatteo002, filip.kendes1, nate, niccolo.venerandi
Priority: NOR Keywords: qt6, usability
Version First Reported In: master   
Target Milestone: 1.0   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In: 6.3.0
Sentry Crash Report:
Attachments: Video of the problem

Description dmatteo002 2024-05-25 20:26:59 UTC
SUMMARY
Using the min/max to change the size of the panel with custom size in edit mode is laggy. 

STEPS TO REPRODUCE
1. Open panel edit mode
2. set the panel to be custom sized
3. drag min and max so to change the current size of the panel

OBSERVED RESULT
The panel resize but stutter multiple times.

EXPECTED RESULT
The panel should not lag but have smoothly transition.

SOFTWARE/OS VERSIONS
Operating System: Arch Linux 
KDE Plasma Version: 6.0.90
KDE Frameworks Version: 6.2.0
Qt Version: 6.7.1
Kernel Version: 6.9.1-arch1-2 (64-bit)
Graphics Platform: Wayland
Graphics Processor: AMD Radeon Graphics
Comment 1 Nate Graham 2024-06-14 17:21:32 UTC
Can you attach a screen recording that shows the issue happening?
Comment 2 dmatteo002 2024-06-14 17:51:35 UTC
Created attachment 170504 [details]
Video of the problem

I attached a video. It only happen when the bar has to change size because of the new constrains.
Comment 3 Nate Graham 2024-06-14 21:53:58 UTC
Thanks. I can reproduce that.
Comment 4 Niccolò Venerandi 2025-01-10 09:41:11 UTC
*** Bug 498203 has been marked as a duplicate of this bug. ***
Comment 5 Bug Janitor Service 2025-01-13 14:51:26 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/5061
Comment 6 Marco Martin 2025-01-14 14:59:23 UTC
Git commit b6c31e9ec3485a5022953d8a24183c38819b1c6f by Marco Martin.
Committed on 14/01/2025 at 14:59.
Pushed by mart into branch 'master'.

shell/panel: ensure at most one resize per frame is done

calls to queuePositionAndResize will mark geometry dirty and ask for redraw
only when the redraw is done, the resize is done and another frame at
proper geometry will be drawn.

this ensures that if we receive a flood of resize requests, at most
one per frame will be performed, making resizing the panel with the
handles feel a lot snappier

M  +6    -0    shell/autotests/shelltest.cpp
M  +20   -5    shell/panelview.cpp
M  +2    -0    shell/panelview.h

https://invent.kde.org/plasma/plasma-workspace/-/commit/b6c31e9ec3485a5022953d8a24183c38819b1c6f
Comment 7 Marco Martin 2025-01-15 08:12:51 UTC
Git commit 8f32c912adc9f0d9f829f474f2e53a9e8fe954b1 by Marco Martin.
Committed on 15/01/2025 at 08:12.
Pushed by mart into branch 'Plasma/6.3'.

shell/panel: ensure at most one resize per frame is done

calls to queuePositionAndResize will mark geometry dirty and ask for redraw
only when the redraw is done, the resize is done and another frame at
proper geometry will be drawn.

this ensures that if we receive a flood of resize requests, at most
one per frame will be performed, making resizing the panel with the
handles feel a lot snappier


(cherry picked from commit b6c31e9ec3485a5022953d8a24183c38819b1c6f)

M  +6    -0    shell/autotests/shelltest.cpp
M  +20   -5    shell/panelview.cpp
M  +2    -0    shell/panelview.h

https://invent.kde.org/plasma/plasma-workspace/-/commit/8f32c912adc9f0d9f829f474f2e53a9e8fe954b1