SUMMARY From my experience on a tablet-like device that has a relatively small screen, plasma likes to play windows larger than the screen such that the titlebar is cut off at the top. This seems sadly like an unfortunate way to handle this, since this means neither can the window be moved around nor can the menu bar be reached which usually tends to be the most central component even if other significant parts of the window aren't reachable. I would suggest that windows should always be placed such that the title bar inside the bounds of the screen, even if the window is otherwise too large. Sorry if this is actually a Qt or KDE Frameworks bug, I'm not quite sure which component exactly is responsible for the placement here. However, it seems to affect pretty much all KDE and Qt applications that I tried, at least when testing any that spawn a window with a larger minimum size than the screen size. STEPS TO REPRODUCE 1. In display settings, set the scaling factor such that many Qt applications wont vertically fit on the screen anymore. 2. Launch any affected application OBSERVED RESULT Quite often, title bar and menu bar are cut off at the top of the screen. EXPECTED RESULT Title bar and menu bar always spawn inside the visible screen area, even if other parts are cut off. SOFTWARE/OS VERSIONS Windows: macOS: Linux/KDE Plasma: postmarketOS Edge (available in About System) KDE Plasma Version: 6.1.1 KDE Frameworks Version: 6.3.0 Qt Version: 6.6.3 ADDITIONAL INFORMATION
IIRC this is intentional or something? Vlad or Xaver, do you remember what I might be thinking of?
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/6157
Git commit d548ade3a64f0c9defc98ff2f9c26fcea0580380 by Xaver Hugl. Committed on 23/07/2024 at 14:02. Pushed by zamundaaa into branch 'master'. placement: keep the titlebar in the screen with centered placement ...even if the window is larger than the screen. M +2 -2 src/placement.cpp https://invent.kde.org/plasma/kwin/-/commit/d548ade3a64f0c9defc98ff2f9c26fcea0580380
Git commit 0e25405151ebf5e02dfe576886027b63da0877f1 by Xaver Hugl. Committed on 23/07/2024 at 14:02. Pushed by zamundaaa into branch 'master'. placement: don't overwrite scheduled position change in cascadeIfCovering As it used the frame geometry, the check for covering windows was sometimes wrong, and additionally overwrite changes to the window position Placement had made before, which could end up with the window origin wrongly not being put inside of the screen in some cases. M +1 -1 src/placement.cpp https://invent.kde.org/plasma/kwin/-/commit/0e25405151ebf5e02dfe576886027b63da0877f1
Git commit b0a8294b0521944eb6bf40c38ba3cef534e55f6f by Xaver Hugl. Committed on 23/07/2024 at 14:16. Pushed by zamundaaa into branch 'master'. autotests: test placement to always put the titlebar on the screen M +34 -0 autotests/integration/placement_test.cpp https://invent.kde.org/plasma/kwin/-/commit/b0a8294b0521944eb6bf40c38ba3cef534e55f6f
Git commit 8a5ac138ce2a93407a5ca64583d6fd89072b06f9 by Xaver Hugl. Committed on 23/07/2024 at 14:33. Pushed by zamundaaa into branch 'Plasma/6.1'. placement: don't overwrite scheduled position change in cascadeIfCovering As it used the frame geometry, the check for covering windows was sometimes wrong, and additionally overwrite changes to the window position Placement had made before, which could end up with the window origin wrongly not being put inside of the screen in some cases. M +1 -1 src/placement.cpp https://invent.kde.org/plasma/kwin/-/commit/8a5ac138ce2a93407a5ca64583d6fd89072b06f9
Git commit a962b30e9c43614a4140dd53019fc6288ae701f2 by Xaver Hugl. Committed on 23/07/2024 at 14:33. Pushed by zamundaaa into branch 'Plasma/6.1'. placement: keep the titlebar in the screen with centered placement ...even if the window is larger than the screen. M +2 -2 src/placement.cpp https://invent.kde.org/plasma/kwin/-/commit/a962b30e9c43614a4140dd53019fc6288ae701f2
Git commit 68c11e79c010236bb8c8aebe29e00f2008194b04 by Xaver Hugl. Committed on 23/07/2024 at 14:33. Pushed by zamundaaa into branch 'Plasma/6.1'. autotests: test placement to always put the titlebar on the screen M +34 -0 autotests/integration/placement_test.cpp https://invent.kde.org/plasma/kwin/-/commit/68c11e79c010236bb8c8aebe29e00f2008194b04
Thanks so much for the fix, this is very cool! :-)
Does this affect Plasma Mobile, too? It's much more of a problem there.