Bug 348043

Summary: Maximized windows are covered by plasma panel in "always visible mode".
Product: [Plasma] plasmashell Reporter: Filippo <filippo.leon>
Component: PanelAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: minor CC: alex.bikadorov, ansgar.radermacher, bob.mt.wya, chris.taylor, christiandehne, csabi, cserveny.tamas, hello, heri+kde, kde, macieksitarz, matt, mgraesslin, mmbossoni, modax, mrpalich, nate, notmart, Ondrej.Machulda, post, psychonaut, root, Saljacky, sebastian, skywatcheuse, sseba89, st.vater, stijn+bugs, subscriber, tomczyk.przemek, tsuther, vermontpoet, vicr12345, w01dnick
Priority: HI    
Version: 5.3.0   
Target Milestone: 1.0   
Platform: Arch Linux   
OS: Linux   
URL: http://imgur.com/s2p0Diu,hyAAM08
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Comparison between the two screen.
xprop
xrandr -q
xrandr output
xprop for plasmashell panel
xrandr -q
xprop (laptop bottom panel)
xprop (external HDMI monitor bottom panel)
xprop (laptop bottom panel)
xprop (external HDMI monitor bottom panel)

Description Filippo 2015-05-21 07:52:45 UTC
So, I have a dual monitor setup with my laptop as main 1600x900 monitor and an external VGA as 1920x1200, side by side (see screenshot).

When I start KDE/Plasma the left monitor has the wrong size for maximized windows: therefore (maximised) windows stay below the panel.

The panel is set to "Always visible".

To fix the problem is sufficient to go to panel options and switch to some other option ("Auto hide" or something) and back. Then it works.

Reproducible: Always

Steps to Reproduce:
1. Start KDE session with left monitor 1600x900 and right monitor at 1920x1200 configuration (with KDE System Settings)
2. Maximize a window

Actual Results:  
"Always visible" Panel covers the window on left screen when maximized.

Expected Results:  
Window maximal size should take into account the panel (see second screenshot).

May be related, but "Windows can cover" does not work in this settings: if a windows covers the panel there is no way to bring the panel on top of the window.

I'm assuming the problem is the "non-uniform" resolution of the two monitors.
Comment 1 Marco Martin 2015-05-22 08:41:55 UTC
when panels are between two monitors, they cannot set struts between the two screens for technical reasons
Comment 2 Filippo 2015-05-22 17:20:37 UTC
But the problem gets fixed when switching to "Auto hide" and back, so it is a  feature currently available, just with a bug.
Comment 3 Martin Flöser 2015-05-26 05:58:09 UTC
@Marco: look at the screenshot, it's not a shared edge
Comment 4 sseba89 2015-11-11 17:07:08 UTC
Created attachment 95445 [details]
Comparison between the two screen.
Comment 5 sseba89 2015-11-11 17:07:45 UTC
Same thing here on archlinux.

Both screen (laptop and external) are full-hd (1920×1080), and on the external one, the bar is ignored when windows is maximized, and therefore windows are of the same height of the screen, but the bottom part is covered by the panel.
Comment 6 David Edmundson 2015-11-11 22:55:28 UTC
Please can you run "xprop" and click on the panel.

Also output of "xrandr -q"
Comment 7 sseba89 2015-11-12 12:30:21 UTC
Created attachment 95460 [details]
xprop
Comment 8 sseba89 2015-11-12 12:30:53 UTC
Created attachment 95461 [details]
xrandr -q
Comment 9 David Edmundson 2015-11-12 12:31:03 UTC
thanks
Comment 10 Simone Gaiarin 2016-01-08 12:46:14 UTC
It happens to me as well. I have the notebook and two external monitors, I have a panel on the notebook screen and one on one of the external monitor. When I boot everything works correctly, but at some point (probably after a crash of plasma, or after I disconnect and reconnect a monitor) the maximized window is partially hidden by the panel in the external monitor, while it is fully visible on the notebook monitor. 

Switching to autohide and back doesn't solve the problem to me.
Comment 11 Garland_Key 2016-01-14 10:41:07 UTC
I can confirm this bug - it's very annoying.

Plasma 5.5.3
2 monitors
    Left monitor is 1920x1080
    Right monitor is 1680x1050

Panel is on the left monitor and set "Always Visible" and "Maximize Panel" has been used.  All windows go behind the panel when they are maximized.  This is like being flicked in the back of the head every time I maximize something.  I have to stop my work flow and focus on fidgiting with the window.  Each time it happens increases my incentive to log out and switch to some other DE that I hate but won't annoy me with random regressions.
Comment 12 Martin Flöser 2016-01-14 11:00:09 UTC
@Garland_Key: where exactly is your panel on the left screen?
Comment 13 Garland_Key 2016-01-14 11:12:15 UTC
(In reply to Martin Gräßlin from comment #12)
> @Garland_Key: where exactly is your panel on the left screen?

The panel is at the bottom.  Here's a screenshot:

http://i.imgur.com/dYMYFDb.png
Comment 14 Eric S 2016-01-27 02:58:22 UTC
This is still the case in Plasma 5.5.3. Shouldn't someone update the version?
Comment 15 Tomáš Poledný 2016-02-01 20:45:31 UTC
I have same problem. It is started with Plasma 5.5. Plasma 5.4 wasn't affected for me.
Comment 16 cybik 2016-03-20 20:04:13 UTC
Reporting from Gentoo using a fresh 5.5.5 build, and this issue plagues me too.
Comment 17 Martin Klapetek 2016-03-21 22:10:05 UTC
*** Bug 360828 has been marked as a duplicate of this bug. ***
Comment 18 Martin Klapetek 2016-03-21 22:12:32 UTC
*** Bug 353053 has been marked as a duplicate of this bug. ***
Comment 19 David Rosca 2016-03-28 19:20:59 UTC
Git commit d2f3147fd27ddb6b49f98592d4148fff306b0ebe by David Rosca.
Committed on 28/03/2016 at 19:19.
Pushed by drosca into branch 'Plasma/5.6'.

PanelView: Skip invalid screen geometries in updateStruts

My second (internal) screen is disabled and has 0x0 size.
This fixes setting the struts for panel and correctly calculating
the available desktop area.

Differential Revision: https://phabricator.kde.org/D1238

M  +3    -0    shell/panelview.cpp

http://commits.kde.org/plasma-workspace/d2f3147fd27ddb6b49f98592d4148fff306b0ebe
Comment 20 David Rosca 2016-03-29 08:07:31 UTC
*** Bug 361120 has been marked as a duplicate of this bug. ***
Comment 21 PGillespie 2016-04-16 02:49:27 UTC
After the most recent update (as of April 15th 2016) :

Kernel: 4.4.0-18-generic x86_64 (64 bit) Desktop: KDE Plasma 5.5.5
           Distro: Ubuntu 16.04 xenial


I'm also experiencing this bug. This appears to be a direct result of the upgrade, as I never previously experienced his bug.
Comment 22 Denis 2016-04-27 18:57:37 UTC
After upgrading to Kubuntu 16.04 taskbar always is covered by maximized (or just moved to taskbar) windows.
Comment 23 Stijn Tintel 2016-05-20 20:11:53 UTC
(In reply to David Rosca from comment #19)
> Git commit d2f3147fd27ddb6b49f98592d4148fff306b0ebe by David Rosca.
Applied this diff to plasma-workspace-5.5.5. It seems to fix this problem for me. Thanks!
Comment 24 Mykola Krachkovsky 2016-06-08 07:44:35 UTC
PlasmaShell panel at left/right side hovers windows when external monitor is plugged.
One monitor configuration all works fine. When panel is on top or bottom also all is fine.
But when I have two monitors and panel is placed on left or right side of any of screens — it hides windows.

OS: openSUSE x86_64, Plasma 5 from git (openSUSE KDE:Unstable:Frameworks repository).
Comment 25 Martin Flöser 2016-06-08 08:07:19 UTC
@Mykola: please provide the output of xrandr and of xprop of the panel. We have a regression in KWin and need to track it down.
Comment 26 Mykola Krachkovsky 2016-06-08 08:15:50 UTC
Created attachment 99409 [details]
xrandr output
Comment 27 Mykola Krachkovsky 2016-06-08 08:16:27 UTC
Created attachment 99410 [details]
xprop for plasmashell panel
Comment 28 Martin Flöser 2016-06-08 09:46:42 UTC
> _NET_WM_STRUT_PARTIAL(CARDINAL) = 0, 4294965960, 0, 0, 0, 0, 0, 1079, 0, 0, 0, 0

I don't know what this panel wants to tell us but I doubt that it really wants to reserve 4294965960 pixels from the right screen edge. That's clearly a wrong value.
Comment 29 Mykola Krachkovsky 2016-06-08 10:53:09 UTC
Bottom-placed panel: _NET_WM_STRUT_PARTIAL(CARDINAL) = 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 1366, 3285
Top: _NET_WM_STRUT_PARTIAL(CARDINAL) = 0, 0, 30, 0, 0, 0, 0, 0, 1366, 3285, 0, 0
Left (between screens): _NET_WM_STRUT_PARTIAL(CARDINAL) = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Left (most left on other screen): _NET_WM_STRUT_PARTIAL(CARDINAL) = 30, 0, 0, 0, 312, 1079, 0, 0, 0, 0, 0, 0
Right: _NET_WM_STRUT_PARTIAL(CARDINAL) = 0, 4294965960, 0, 0, 0, 0, 0, 1079, 0, 0, 0, 0

Both left positions have bug too.
Comment 30 Martin Flöser 2016-06-08 12:13:52 UTC
> Left (between screens):
Between screens is not supported
> Left (most left on other screen): _NET_WM_STRUT_PARTIAL(CARDINAL) = 30, 0, 0, 0, 312, 1079, 0, 0, 0, 0, 0, 0

The values at least look correct to me - that might be a case of bug #363804
Comment 31 Mykola Krachkovsky 2016-06-08 14:52:24 UTC
4294965960 = (uint32_t)(-1336)
1336 = 1366 - 30
1366 — width of other screen
30 — panel width

Why uint32_t fit there isn't clear — I have x86_64 OS. Maybe some bug.
Comment 32 Martin Flöser 2016-06-08 14:59:05 UTC
(In reply to Mykola Krachkovsky from comment #31)
> 4294965960 = (uint32_t)(-1336)
> 1336 = 1366 - 30
> 1366 — width of other screen
> 30 — panel width

oh my. A negative value doesn't make sense there (though it's apparently allowed in the spec).

> 
> Why uint32_t fit there isn't clear — I have x86_64 OS. Maybe some bug.

That's correct. X11 protocol values are defined to be 32 bits.
Comment 33 Martin Flöser 2016-06-10 06:37:38 UTC
(In reply to Martin Gräßlin from comment #32)
> oh my. A negative value doesn't make sense there (though it's apparently
> allowed in the spec).

What did I write here? It's a CARDINAL and that's an "unsigned integer", so negative values are not allowed.
Comment 34 Bob Wya 2016-06-18 11:19:46 UTC
Created attachment 99563 [details]
xrandr -q

I've just upgraded my Gentoo install to Qt 5.7.0 and Plasma 5.6.5.

I've a laptop screen and a LHS external HDMI monitor. They are slightly offset vertically. See xrandr output for what I mean.

I'm seeing this bug now for both my panels...
2x panels:
bottom of laptop DP screen
bottom of HDMI external monitor
Comment 35 Bob Wya 2016-06-18 11:22:21 UTC
Created attachment 99564 [details]
xprop (laptop bottom panel)

xprop attached.
RHS screen (Laptop DP internal screen).
bottom panel.
Comment 36 Bob Wya 2016-06-18 11:29:59 UTC
Created attachment 99565 [details]
xprop (external HDMI monitor bottom panel)

xprop attached.
LHS screen (external HDMI monitor).
bottom panel.
Comment 37 Bob Wya 2016-06-19 19:09:31 UTC
So I'm booted into my Arch install - same machine - same 2 panels - same monitor setup.
My Arch install is on Qt 5.6.1 / plasma 5.6.5.

The strut's for the panels are clearly being miscalculated when 2+ mismatched screen size multi-monitor setups are used. Compare the following with the Gentoo Qt 5.7.0 results (see above).

Screen 0: minimum 8 x 8, current 4480 x 1588, maximum 16384 x 16384
VGA-0 disconnected (normal left inverted right x axis y axis)
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 connected primary 1920x1080+2560+508 (normal left inverted right x axis y axis) 382mm x 215mm
   1920x1080     60.02*+
HDMI-0 connected 2560x1440+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
   2560x1440     59.95*+
   1920x1200     59.95    59.88  
   1920x1080     60.00    59.94    50.00    29.97    60.05    60.00    50.04  
   1680x1050     59.95  
   1600x1200     60.00  
   1600x900      60.00  
   1280x1024     75.02    60.02  
   1280x720      60.00    59.94    50.00  
   1152x864      75.00  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    59.94    59.93

With Qt 5.6.1 (LHS):
_NET_WM_STRUT(CARDINAL) = 0, 0, 0, 190
_NET_WM_STRUT_PARTIAL(CARDINAL) = 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, 0, 2559

With Qt 5.6.1 (RHS):
_NET_WM_STRUT(CARDINAL) = 0, 0, 0, 44
_NET_WM_STRUT_PARTIAL(CARDINAL) = 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 2560, 4479

So the RHS base is -148 of the LHS screen (1440-508-1080).
Top strut is 190 on LHS panel (higher) = 42 pixel panel height = correct!!
Top strut is 44 on RHS panel (lower) = 44 pixel panel height = correct!!
Comment 38 Bob Wya 2016-06-19 19:13:22 UTC
Created attachment 99613 [details]
xprop (laptop bottom panel)


RHS screen: Laptop bottom panel
Correct panel functionality observed
Arch Linux with Qt 5.6.1
Comment 39 Bob Wya 2016-06-19 19:14:50 UTC
Created attachment 99614 [details]
xprop (external HDMI monitor bottom panel)


LHS screen: HDMI external monitor
Correct panel functionality observed
Arch Linux with Qt 5.6.1
Comment 40 Bob Wya 2016-06-20 03:21:49 UTC
Martin,

I saw you'd made some commits to plasma/kwin to resolve the "ongoing" STRUT issues in Plasma 5 - that got merged into Plasma 5.6.95. Updating my Gentoo install from Plasma 5.6.5 to 5.6.95 resolved the panel issues for me. The panel STRUT values are back to being positive integers again!

Great stuff. Thanks for your hardwork!!
Comment 41 Modestas Vainius 2016-09-06 09:55:56 UTC
I think I have started seeing this since upgrade to plasma 5.7 (5.7.4 to be precise) from 5.6.5 . Never had this problem before.
Comment 42 skywatcheuse 2016-09-24 13:04:00 UTC
I'm having this very problem on Kubuntu 16.04 since today's update... (I just have one screen.)
Comment 43 Alex Bikadorov 2016-09-29 17:16:34 UTC
Same problem here after upgrade to Plasma Desktop 5.7.4.

(Dual) Monitor setup:
LVDS-1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 309mm x 173m
HDMI-1 connected 1920x1080+1366+0 (normal left inverted right x axis y axis) 597mm x 336mm panning 1920x1080+1366+0

Panel is on the left (on LVDS-1).
Comment 44 Ansgar Radermacher 2017-07-18 11:18:23 UTC
Same problem for me, laptop with external monitor. Problem occurs also when using only the external or only internal screen. Panel is on the left
(Kubuntu 16.04, KDE plasma 5.5.5)
Comment 45 Martin Flöser 2017-07-18 15:06:17 UTC
@Ansgar: consider updating, that version is ancient. We are currently at 5.10.

The panel behavior changed with Plasma 5.8. I assume the changes there fixed this issue. If anybody is still able to reproduce the issue with 5.8 or later: please reopen.
Comment 46 Ansgar Radermacher 2017-07-18 19:32:08 UTC
(In reply to Martin Flöser from comment #45)
> @Ansgar: consider updating, that version is ancient. We are currently at
> 5.10.
> 
> The panel behavior changed with Plasma 5.8. I assume the changes there fixed
> this issue. If anybody is still able to reproduce the issue with 5.8 or
> later: please reopen.

I confirm that the issue is solved after upgrading KDE.
Comment 47 Nate Graham 2018-01-23 22:06:35 UTC
*** Bug 323230 has been marked as a duplicate of this bug. ***
Comment 48 Andras 2019-08-12 18:25:08 UTC
(In reply to Martin Flöser from comment #45)
Hm, unfortunately yes it's happening on a newer plasma so I reopen this bug, sorry if I'm wrong about it.
Latte Dock: 0.9.1
KDE neon 5.16
KDE Plasma version: 5.16.4
KDE Frameworks Version: 5.61.0
Qt Version: 5.12.3
Kernel Version: 4.15.5-55-generic

monitors' position if it's related info maybe:
Option "metamodes" "DVI-D-0: 1440x900_75 +0+1260 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}, HDMI-0: nvidia-auto-select +1440+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}, DP-0: nvidia-auto-select +1440+1080 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}"

In this case the Problem occurs when additional monitor is set above the primary one with latte dock placed on the top. It works when I switch between always visible and other visibility settings.

Let me know if I should attach some specific details about this system, thanks.
Comment 49 Andras 2019-08-12 18:29:59 UTC
Sorry, I'm just realized later this bug is about plasmashell and not latte dock uhh, excuse me, please close it again
Comment 50 Tristan Miller 2019-08-20 09:15:31 UTC
Possible duplicate: Bug 366136
Comment 51 Tamas 2019-09-17 20:14:19 UTC
I can reproduce this problem with plasma 5.12.8-0ubun (LTS 18.04)
qt 5.9.5-0ubuntu1
kde-plasma 5.12.8-0ubun

Dual screen setup. Panel takes back the space if toggled the autovisible/autohide.

After suspend the dock will lose this "cannot cover" effect.
Comment 52 Nate Graham 2019-09-17 20:30:18 UTC
*** Bug 366136 has been marked as a duplicate of this bug. ***
Comment 53 Nate Graham 2023-05-17 02:33:42 UTC
No more reports in 3 and a half years and I can't reproduce it myself. Let's call it fixed.