https://bugs.kde.org/show_bug.cgi?id=482361
--- Comment #7 from Vlad Zahorodnii <vlad.zahorod...@kde.org> ---
Git commit b3925a94600d297bbe85268cf8e85b0993de0471 by Vlad Zahorodnii.
Committed on 07/03/2024 at 11:52.
Pushed by vladz into branch 'Plasma/6.0'.

wayland: Fix windows shrinking when output layout changes

When the output layout changes, the Workspace is going to update the
struts and then go through every window and see whether it should be
moved or resized.

On the other hand, the layer shell windows react to output changes on
a timer. Furthermore, it's not synchronized with the workspace rearranging
the managed windows. It means that when Workspace::desktopResized() runs,
the panel struts can be slightly outdated, i.e.

- An output layout change occurs
- Workspace::desktopResized() is called but the struts can be wrong
- some time later, LayerShellV1Integration::rearrange is called, it
  fixes layer shell window geometries and struts
- after the layer shell integration has finished rearranging the
  layer shell windows, it calls Workspace::desktopResized(), but the
  damage had already been caused

With the proposed change, the Workspace and the LayerShellV1Integration
will rearrange the windows in sync.
(cherry picked from commit a489bfa12c7d55a80c439a15471b2f669a8ef28f)

M  +50   -0    autotests/integration/layershellv1window_test.cpp
M  +1    -16   src/layershellv1integration.cpp
M  +0    -4    src/layershellv1integration.h
M  +1    -3    src/layershellv1window.cpp
M  +10   -0    src/workspace.cpp
M  +3    -0    src/workspace.h

https://invent.kde.org/plasma/kwin/-/commit/b3925a94600d297bbe85268cf8e85b0993de0471

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to