Bug 470687

Summary: Clicking the title bar in Visual Studio Code causes it to instantly resize when tiled
Product: [Plasma] kwin Reporter: Jordan Berlyn <jberlyn>
Component: generalAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: nate
Priority: NOR    
Version: 5.27.5   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In: 6.2.0
Sentry Crash Report:

Description Jordan Berlyn 2023-06-06 06:23:28 UTC
SUMMARY
Visual Studio Code instantly resizes if you click anywhere on the title bar, while the window is tiled. This only happens if you have the Visual Studio Code title bar set to "Custom" in the settings. This happens in both X11 and Wayland.

STEPS TO REPRODUCE
1. Run Visual Studio Code with the title bar style set to custom.
2. Have the window tiled using Quick Tiling or the new tiling feature introduced in 5.27.
3. Click anywhere on the title bar that isn't a button or the search box.

OBSERVED RESULT
The window is instantly resized to it's original untiled size.

EXPECTED RESULT
Don't do anything, only resize if the window is moved, similar to how other apps work like Dolphin or Konsole.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Arch Linux
KDE Plasma Version: 5.27.5
KDE Frameworks Version: 5.106.0
Qt Version: 5.15.9
Comment 1 Bug Janitor Service 2024-09-24 08:26:30 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/6479
Comment 2 Bug Janitor Service 2024-09-24 08:38:06 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/6480
Comment 3 Vlad Zahorodnii 2024-09-25 22:04:27 UTC
Git commit 3d42154504214feeba69f986b56d09d58677b966 by Vlad Zahorodnii.
Committed on 25/09/2024 at 22:04.
Pushed by vladz into branch 'master'.

Fix breaking tiling by resizing the window

When a window is resized, the window should be untiled so the geometry
doesn't change.

M  +1    -0    src/window.cpp

https://invent.kde.org/plasma/kwin/-/commit/3d42154504214feeba69f986b56d09d58677b966
Comment 4 Bug Janitor Service 2024-09-25 22:14:14 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/6501
Comment 5 Vlad Zahorodnii 2024-09-25 22:27:05 UTC
Git commit 1e81fcb9be6ae321f024dc23fa2bba58a54bb5ae by Vlad Zahorodnii.
Committed on 25/09/2024 at 22:14.
Pushed by vladz into branch 'master'.

Untile/unmaximize a window during interactive resize after receiving user input

Currently, a tiled window will be untiled when you start interactive
resize. But there are clients that start interactive resize as soon as
they receive a button press around their edges, e.g. Firefox, which
results in unexpected untiling. Another argument is that it makes
interactive resizing and interactive move consistent, they both would
untile the window after explicit user input.

M  +42   -39   src/window.cpp

https://invent.kde.org/plasma/kwin/-/commit/1e81fcb9be6ae321f024dc23fa2bba58a54bb5ae
Comment 6 Vlad Zahorodnii 2024-09-25 22:29:12 UTC
Git commit 045ad4eec5a22c9f6fe0f3b5b201c5bfa0c1fc2b by Vlad Zahorodnii.
Committed on 25/09/2024 at 22:29.
Pushed by vladz into branch 'Plasma/6.2'.

Fix breaking tiling by resizing the window

When a window is resized, the window should be untiled so the geometry
doesn't change.


(cherry picked from commit 3d42154504214feeba69f986b56d09d58677b966)

M  +1    -0    src/window.cpp

https://invent.kde.org/plasma/kwin/-/commit/045ad4eec5a22c9f6fe0f3b5b201c5bfa0c1fc2b
Comment 7 Vlad Zahorodnii 2024-09-25 22:58:25 UTC
Git commit 1e1b80740fe58e4bd0f90d706ecc3c2efc7e0529 by Vlad Zahorodnii.
Committed on 25/09/2024 at 22:45.
Pushed by vladz into branch 'Plasma/6.2'.

Untile/unmaximize a window during interactive resize after receiving user input

Currently, a tiled window will be untiled when you start interactive
resize. But there are clients that start interactive resize as soon as
they receive a button press around their edges, e.g. Firefox, which
results in unexpected untiling. Another argument is that it makes
interactive resizing and interactive move consistent, they both would
untile the window after explicit user input.
(cherry picked from commit 1e81fcb9be6ae321f024dc23fa2bba58a54bb5ae)

M  +45   -42   src/window.cpp

https://invent.kde.org/plasma/kwin/-/commit/1e1b80740fe58e4bd0f90d706ecc3c2efc7e0529