Version: (using Devel) OS: Linux Installed from: Compiled sources This is my xinerama screen layout, for each screen [x, y, width, height]: [0, 0, 1600, 1200], [1600, 0, 1680, 1050] On the right screen of height 1050, there is the plasma panel at bottom. Now this reproducible problem appears: - When I open a konsole on the left screen in full-screen, close it, and re-open it, then it is re-opened in only about the height of the right screen, instead of being full-screen on the left again. - When I close + open it again, it again has about half the height. All that while retaining the full screens width. I've researched a bit and found the problem: During the process of showing the window the first time, it's geometry is adjusted to fit into the work-area. The problem is that due to the plasma-panel on the right screen, the work-area is cut down to about 3180x980, and this does not include the full left screen. In my eyes the concept of cutting down the workspace by panels that are on a single screen is wrong, since the same panel does not have to be on other screens. The top-menu stuff also changes the work-area, and probably suffers from the same problem.
Created an attachment (id=31315) [details] Do not cut the work-area by panels. The work-area should not be cut by panels, because this cannot properly work in xinerama setups.
Patch is unacceptable as it breaks the whole purpose of the work area. The best method would be ignore any strut that does not touch the outer edge of the whole desktop but include the ones that do. If you have two screens: [0, 0, 1680x1050] and [1680, 0, 1920x1200] this method will include the panel at [1680, 1062, 1920x38] but ignore the panel at [0, 1012, 1680x38] (Which is the one which will cause everything to shrink).
Correction: First panel is at [1680, 1162, 1920x38] not [1680, 1062, 1920x38].
That still won't work. To workaround the problem, I have now moved the right screen down, so both screens are aligned at the bottom at 1200. Still, maximized windows on the left screen do not correctly restore, because the panel on the right screen limits their size. The only correct way would be ignoring all struts that would affect the area of another screen they are not part of. But since you can place panels and screens arbitrarily, the whole workarea concept cannot work anyway. Why not give it up, and only use the screen-areas instead? Also, with my patch, everything seems to work fine, since the screen-areas seem to be respected during placing as well.
I once had the problem that the panel on the right screen overlapped by one pixel onto the left screen. I had either size or layout (don't remember which) of panel and that solved the problem for me. Perhaps it's the same for you. Then we should reassign the bug to Plasma ;-)
@Martin Gräßlin: Nope, this is clearly a conceptual problem in kwins work-area management(See the code in the patch). It tries to maintain a rectangular work-area that spans all screens, and that does not overlap panels.
The bug you described in comment #4 is bug 160068 and requires a completely different (And far more complex) patch than the one you described in the opening report.
SVN commit 926545 by lmurray: Ignore struts half-way up the screen when calculating the available work area. Fixes placement and resizing of windows on the larger monitor of a xinerama setup where each monitor has a different resolution. BUG: 184348 M +5 -0 client.h M +47 -2 geometry.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=926545
You need to log in before you can comment on or make changes to this bug.