SUMMARY Very large widget popups do not stay on the monitor where the parent panel widget is. As an example, I have a setup with two screens arranged vertically, each of which has a panel on top with the "Places" widget on it. The popup of this widget on the bottom screen can become tall enough that it is taller than the screen; in that case, it pops up on the monitor above, rather than on the bottom one. This is of course not ideal as it looks completely random and broken. STEPS TO REPRODUCE 1. Click on a widget that shows a very tall popup OBSERVED RESULT The popup is shown on the wrong monitor. EXPECTED RESULT The popup is shown on the monitor where the widget is. SOFTWARE/OS VERSIONS Linux: KDE neon KDE Plasma Version: 5.27.0 KDE Frameworks Version: 5.103.0 Qt Version: 5.15.8 ADDITIONAL INFORMATION
Created attachment 156363 [details] Screenshot of the issue
Hmm, if it's too tall to fit on the monitor you want it to open on, what should it do instead? Open there and look visually broken by having part of it get cut off?
I don't understand the logic of your question. Should people who only have one monitor which is too small for the widget see it broken, while people with multiple monitors see it correctly? Even within the group of those who use multiple monitors, should only people with vertically-arranged monitors see the widget displayed correctly (as the bug does not happen with horizontally-arranged monitors)? Either way, I do not see why vertical arrangement of monitors should change the way widgets are treated, given that every and any other monitor arrangement does not influence it. If a widget becomes broken because it is too tall to be shown on a monitor, that is an implementation issue with the widget which shouldn't affect the way it is displayed in multi-monitor settings. Just as a side note, the specific widget ("Places") becomes scrollable with just one monitor, so it doesn't look broken at all.
Let me ask another way: If a widget popup doesn't fit on the monitor you want it to open on, where should happen instead? You previously said, "The popup [should be] shown on the monitor where the widget is." But part of it would get cut off if we did that, no?
I understand your point. In some cases, it might get cut off. The thing, however, is this: should the user having a larger screen make any difference? Should the larger screen make the experience look broken anyway by showing the widget popup where it is not supposed to be? Let's suppose my setup is made of my laptop's FullHD screen and an external 4K screen. If I open a widget on the laptop's screen that's too big, it is shown on the 4K screen, looking broken because it is not where I expect it to be. But what happens if I have just the laptop's screen? The widget opens there anyway, and will look broken because it's too small. Among the two, I would say that showing the widget popup on the screen where the widget is is actually the best option, because it doesn't break the POLA. More as an anecdote, but I haven't found a widget that was too big for the screen yet. They all resize to fit the screen, unless I am using a multi-monitor setup.
All right, you've convinced me! Makes sense.
*** Bug 466099 has been marked as a duplicate of this bug. ***
Ultimately this was traced to a Qt bug that we're now hitting in Plasma 5.27 due to changes on our side in how screen stuff works. It's now fixed in Qt with https://codereview.qt-project.org/c/qt/qtwayland/+/462780, which has been packported to our Qt 5 patch collection. You should get the fix as soon as your distro ships an update to the KDE Qt patch collection.