Bug 350826 - plasma desktop containment seems to intermediately switch window type to normal when showing desktop
Summary: plasma desktop containment seems to intermediately switch window type to norm...
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Desktop Containment (show other bugs)
Version: 5.7.3
Platform: Fedora RPMs Linux
: NOR normal
Target Milestone: 1.0
Assignee: Sebastian Kügler
URL:
Keywords:
: 365685 (view as bug list)
Depends on:
Blocks:
 
Reported: 2015-07-31 14:59 UTC by jeremy9856
Modified: 2020-01-22 18:26 UTC (History)
11 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
Debug patch (5.5) (3.57 KB, patch)
2015-11-24 21:47 UTC, Thomas Lübking
Details
debug layer updates on desktop showing (1.64 KB, patch)
2015-11-27 10:25 UTC, Thomas Lübking
Details

Note You need to log in before you can comment on or make changes to this bug.
Description jeremy9856 2015-07-31 14:59:27 UTC
Show desktop don't always hide windows the few first time you click it. Sometimes you need to click it several times to make it work.

Kubuntu 15.10 x64 Alpha 2 in virtualbox.

Reproducible: Often

Steps to Reproduce:
1. Click on Show desktop

Actual Results:  
Nothing happen

Expected Results:  
Hide windows
Comment 1 Thomas Lübking 2015-07-31 15:05:49 UTC
click what? KWin has no GUI :-P

I assume some™ plasmoid (stock one) in some (desktop? panel? extra?) window.

=> run "kcmshell5 keys", select KWin, filter for "show deskt" (or scroll to death ;-) and ensure a shortcut (eg. "Meta+D", but it doesn't really matter) is set.

=> Does activation by shortcut work as expected?

If so, please elaborate on the location of your "show desktop" plasmoid, your focus model (click or hover) and whether all or only some windows (plasmashell dialogs? keep above?) remain.
Comment 2 jeremy9856 2015-07-31 15:16:13 UTC
Sorry I meant the "Show desktop" plasmoid ;)
I placed it on the default panel.

I tested with a shortcut and it's the same. Sometimes that doesn't work the first 2 or 3 times.
Comment 3 Thomas Lübking 2015-07-31 20:31:29 UTC
- Does it also happen with the compositor suspended (SHIFT+Alt+F12)
- please (esp. if not) attach the output of "qdbus org.kde.KWin /KWin supportInformation"
Comment 4 jeremy9856 2015-07-31 20:36:28 UTC
It happen with the compositor suspended too

qdbus org.kde.KWin /KWin supportInformation
KWin Support Information:
The following information should be used when requesting support on e.g. http://forum.kde.org.
It provides information about the currently running instance, which options are used,
what OpenGL driver and which effects are running.
Please post the information provided underneath this introductory text to a paste bin service
like http://paste.kde.org instead of pasting into support threads.

==========================

Version
=======
KWin version: 5.3.2
Qt Version: 5.4.2
Qt compile version: 5.4.2
XCB compile version: 1.11

Operation Mode: X11 only

Build Options
=============
KWIN_BUILD_DECORATIONS: yes
KWIN_BUILD_TABBOX: yes
KWIN_BUILD_ACTIVITIES: yes
HAVE_WAYLAND: yes
HAVE_WAYLAND_EGL: yes
HAVE_WAYLAND_CURSOR: yes
HAVE_XKB: yes
HAVE_INPUT: yes
HAVE_XCB_CURSOR: yes
HAVE_XCB_SYNC: yes
HAVE_X11_XCB: yes

X11
===
Vendor: The X.Org Foundation
Vendor Release: 11702000
Protocol Version/Revision: 11/0
SHAPE: yes; Version: 0x11
RANDR: yes; Version: 0x14
DAMAGE: yes; Version: 0x11
Composite: yes; Version: 0x4
RENDER: yes; Version: 0xb
XFIXES: yes; Version: 0x50
SYNC: yes; Version: 0x31
GLX: yes; Version: 0x0

Decoration
==========
Plugin: org.kde.breeze
Theme: 
Blur: 0
onAllDesktopsAvailable: false
alphaChannelSupported: false
closeOnDoubleClickOnMenu: false
decorationButtonsLeft: 0, 2
decorationButtonsRight: 6, 3, 4, 5
borderSize: 3
gridUnit: 10
font: Droid Sans,10,-1,5,75,0,0,0,0,0
smallSpacing: 2
largeSpacing: 10

Options
=======
focusPolicy: 0
nextFocusPrefersMouse: false
clickRaise: true
autoRaise: false
autoRaiseInterval: 0
delayFocusInterval: 0
shadeHover: false
shadeHoverInterval: 250
separateScreenFocus: false
placement: 6
focusPolicyIsReasonable: true
borderSnapZone: 10
windowSnapZone: 10
centerSnapZone: 0
snapOnlyWhenOverlapping: false
rollOverDesktops: true
focusStealingPreventionLevel: 1
legacyFullscreenSupport: false
operationTitlebarDblClick: 5000
operationMaxButtonLeftClick: 5000
operationMaxButtonMiddleClick: 5015
operationMaxButtonRightClick: 5014
commandActiveTitlebar1: 0
commandActiveTitlebar2: 30
commandActiveTitlebar3: 2
commandInactiveTitlebar1: 4
commandInactiveTitlebar2: 30
commandInactiveTitlebar3: 2
commandWindow1: 7
commandWindow2: 8
commandWindow3: 8
commandWindowWheel: 31
commandAll1: 10
commandAll2: 3
commandAll3: 14
keyCmdAllModKey: 16777251
showGeometryTip: false
condensedTitle: false
electricBorderMaximize: false
electricBorderTiling: true
electricBorderCornerRatio: 0.25
borderlessMaximizedWindows: false
killPingTimeout: 5000
hideUtilityWindowsForInactive: true
inactiveTabsSkipTaskbar: false
autogroupSimilarWindows: false
autogroupInForeground: true
compositingMode: 2
useCompositing: false
compositingInitialized: false
hiddenPreviews: 1
unredirectFullscreen: false
glSmoothScale: 2
colorCorrected: false
xrenderSmoothScale: false
maxFpsInterval: 16666666
refreshRate: 0
vBlankTime: 6000000
glStrictBinding: true
glStrictBindingFollowsDriver: true
glCoreProfile: false
glPreferBufferSwap: 97
glPlatformInterface: 1

Screen Edges
============
desktopSwitching: false
desktopSwitchingMovingClients: false
cursorPushBackDistance: 1x1
timeThreshold: 150
reActivateThreshold: 350
actionTopLeft: 0
actionTop: 0
actionTopRight: 0
actionRight: 0
actionBottomRight: 0
actionBottom: 0
actionBottomLeft: 0
actionLeft: 0

Screens
=======
Multi-Head: no
Active screen follows mouse:  no
Number of Screens: 1
Screen 0 Geometry: 0,0,1920x977

Compositing
===========
Compositing is not active
Comment 5 Thomas Lübking 2015-07-31 20:50:33 UTC
Ok, next time it happens, please watch the active window.

As it's not an effect referencing all windows nor a double trigger (unlikely to be caused by plasmoid AND shortcut) some client will respond to the state change by a self activation - and break the state.

I'll bet on firefox or thunderbird :-P
Comment 6 jeremy9856 2015-07-31 21:37:09 UTC
I'm not sure to understand. When I test, I simply boot my VM, launch Konsole and try the plasmoid or the shortcut.
Comment 7 Thomas Lübking 2015-07-31 22:18:37 UTC
Well, the behavior will not depend on the mood of your computer.
If it doesn't work, there's a reason and there two things that could happen:

a) the state isn't triggered/entered
b) the state is immidiately re-broken

As entering in general seems to work, and the problem exists for different triggers, it seemed more likely that the state gets broken (what eg. happens if activation for a client is enforced).
But if this affects a setup where there is (across all desktops/activit[y|ies?]) only one window (konsole) that idea just got nuked as well.

Have you ever seen such ouside a VM?
Comment 8 jeremy9856 2015-08-01 09:21:18 UTC
I confirm, it happen with only one window (konsole).
If I remember correctly it happen on a hard install too but I don't have one to test now.
Comment 9 Thomas Lübking 2015-08-03 13:36:20 UTC
Since you've konsole open, please check the ouput of

    xprop -root _NET_SHOWING_DESKTOP

when invocation fails (does it change and what does it say?)
Comment 10 jeremy9856 2015-08-03 13:46:32 UTC
The output is :

_NET_SHOWING_DESKTOP(CARDINAL) = 0

Nothing else happen
Comment 11 Thomas Lübking 2015-08-03 13:57:54 UTC
Ok, this means the state is either not entered or immediately re-broken, but there's no bug in the implementation itself.

Can you
    wmctrl -k on

or (far superior¹ ;-)
   kwindowsystem desktop show

[1] https://github.com/luebking/KLItools
Comment 12 jeremy9856 2015-08-03 15:14:32 UTC
If I do "wmctrl -k on" it's exactly the same, sometimes the windows are hidden, sometimes they are not but something seems to happen because the window (konsole) lose the focus. 

I wanted to try kwindowsystem but their isn't much explanation. I tried ./make_kwindowsystem.sh but it say it don't find QApplication.
Comment 13 Thomas Lübking 2015-08-03 18:56:38 UTC
(In reply to jeremy9856 from comment #12)
> If I do "wmctrl -k on" it's exactly the same, sometimes the windows are
> hidden, sometimes they are not but something seems to happen because the
> window (konsole) lose the focus. 

Aha!
The $60.000 question is: where does the focus go?
In doubt, run

   wmctrl -k on; sleep 3; xprop -root _NET_ACTIVE_WINDOW

This will print sth. like
_NET_ACTIVE_WINDOW(WINDOW): window id # 0x3e0001b

And you can then re-activate konsole and check (with the actual ID)

   xprop -id 0x3e0001b

> I wanted to try kwindowsystem but their isn't much explanation. I tried
> ./make_kwindowsystem.sh but it say it don't find QApplication.

Errrrr, sorry :-\
I'm frankly not even sure whether I pushed a KF5 port somewhere (ie. the version on github links kdelibs from KDE4)
Comment 14 jeremy9856 2015-08-03 19:16:13 UTC
When the windows are hidden I have something like this :

_NET_WM_ICON_GEOMETRY(CARDINAL) = 70, 948, 288, 25
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE
_KDE_NET_WM_FRAME_STRUT(CARDINAL) = 2, 2, 29, 4
_NET_FRAME_EXTENTS(CARDINAL) = 2, 2, 29, 4
_NET_WM_DESKTOP(CARDINAL) = 0
_KDE_NET_WM_ACTIVITIES(STRING) = "6891f258-fe9b-4d7e-9ac1-627ced80ef87"
WM_STATE(WM_STATE):
                window state: Normal
                icon window: 0x0
_NET_WM_STATE(ATOM) = 
_NET_WM_USER_TIME(CARDINAL) = 204479
_NET_WM_ICON(CARDINAL) =        Icon (16 x 16):
...
XdndAware(ATOM) = BITMAP
_KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 160119
_NET_WM_NAME(UTF8_STRING) = "jeremy : bash"
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x3e, 0x7e, 0x0, 0x0
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
_XEMBED_INFO(_XEMBED_INFO) = 0x0, 0x1
WM_CLIENT_LEADER(WINDOW): window id # 0x5400002
WM_HINTS(WM_HINTS):
                Client accepts input or input focus: True
                Initial state is Normal State.
_NET_WM_PID(CARDINAL) = 2146
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 88080391
WM_CLASS(STRING) = "konsole", "konsole"
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_NORMAL_HINTS(WM_SIZE_HINTS):
                user specified size: 777 by 459
                program specified minimum size: 0 by 29
                window gravity: Static



When that don't work and Konsole lose focus :

_KDE_NET_WM_ACTIVITIES(STRING) = "00000000-0000-0000-0000-000000000000"
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE
_NET_WM_DESKTOP(CARDINAL) = 4294967295
WM_STATE(WM_STATE):
                window state: Normal
                icon window: 0x0
_NET_WM_STATE(ATOM) = _NET_WM_STATE_BELOW
_NET_WM_USER_TIME(CARDINAL) = 149857
_NET_WM_ICON(CARDINAL) =        Icon (16 x 16):
...
XdndAware(ATOM) = BITMAP
_KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 150218
_NET_WM_NAME(UTF8_STRING) = "Desktop — Plasma"
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x2, 0x1, 0xe, 0x0, 0x0
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_DESKTOP
_XEMBED_INFO(_XEMBED_INFO) = 0x0, 0x1
WM_CLIENT_LEADER(WINDOW): window id # 0x2c00002
WM_HINTS(WM_HINTS):
                Client accepts input or input focus: True
                Initial state is Normal State.
_NET_WM_PID(CARDINAL) = 1967
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 46137366
WM_CLASS(STRING) = "plasmashell", "plasmashell"
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_NORMAL_HINTS(WM_SIZE_HINTS):
                user specified location: 0, 0
                user specified size: 1920 by 977
                program specified minimum size: 1920 by 977
                program specified maximum size: 1920 by 977
                window gravity: Static
Comment 15 jeremy9856 2015-08-10 07:07:44 UTC
Any news on this ?
Comment 16 Thomas Lübking 2015-08-10 07:39:49 UTC
Sorry.

The focus is on plasmashell (the desktop window), kwin would usually put it there when showing the desktop.

What's however suspicious is

> _NET_WM_STATE(ATOM) = _NET_WM_STATE_BELOW

That should not be there and the state will trigger plasmashell to be below most windows (regardless of the state)


But I'll be honest:
plasmashell currently doesn't even set its type to "_NET_WM_WINDOW_TYPE_DESKTOP" here - I need to apply a rule to fix this... (and aside that it reliably crashes on "kquitapp plasmashell")
Comment 17 Martin Flöser 2015-08-10 09:04:28 UTC
> plasmashell currently doesn't even set its type to "_NET_WM_WINDOW_TYPE_DESKTOP" here 

That sounds related to https://mail.kde.org/pipermail/release-team/2015-July/008797.html - especially as Kubuntu was affected by this.
Comment 18 jeremy9856 2015-09-07 15:32:34 UTC
Anything new ?
Comment 19 Thomas Lübking 2015-09-07 19:14:19 UTC
Not here - it's not reproducible.
Not even setting the desktop _NET_WM_STATE_BELOW interfers.

Can you compile and test patches? (so we can trace whether KWin enters the state and why it's broken - maybe even by whom)
Comment 20 jeremy9856 2015-09-07 19:21:11 UTC
If you say me what to do i can try.
Comment 21 Thomas Lübking 2015-09-07 20:07:22 UTC
You mean the patch (I'll of course write that) or "how do i compile kwin"?
For the latter:

git clone git://anongit.kde.org/kwin.git
cd kwin
git checkout Plasma/5.4
mkdir build
cd build
ccmake ..
[press c, adjust installation paths, maybe disable building tests and documentation, press "c" again, then "g" and "q" - if there were no error (you'll need quite some -dev packages, notably qtbase, kwayland, kwindowsystem and xcb)]
make && sudo make install
Comment 22 jeremy9856 2015-09-07 20:47:49 UTC
I meant that, compile kwin, and how to patch it with the patch you will make.
Comment 23 jeremy9856 2015-11-23 23:08:43 UTC
Hello Thomas,

I'm still waiting for the patch ;)
Comment 24 Thomas Lübking 2015-11-24 21:47:12 UTC
Created attachment 95714 [details]
Debug patch (5.5)

Sorry, I didn't read that as "yes I can" ;-)
The patch should cleanly apply on the 5.5 or master branches, but hunks will likely auto-resolve on 5.4 as well.

Then just start "kwin_x11 --replace &" from konsole, should print reasons for state changes.
Once we know *what* happens, we can check *why* it happens.
Comment 25 jeremy9856 2015-11-26 13:35:37 UTC
Ok I tried and I hope that worked. I pressed 4 times the "show desktop" icon and this is the output :

Show Desktop: (external) true
Show Desktop: (THIS SHOULD FOLLOW A REASON) true
QXcbWindow: Unhandled client message: "_NET_SHOWING_DESKTOP"
Show Desktop: (external) false
Show Desktop: (THIS SHOULD FOLLOW A REASON) false
QXcbWindow: Unhandled client message: "_NET_SHOWING_DESKTOP"
Show Desktop: (external) true
Show Desktop: (THIS SHOULD FOLLOW A REASON) true
QXcbWindow: Unhandled client message: "_NET_SHOWING_DESKTOP"
Show Desktop: (external) false
Show Desktop: (THIS SHOULD FOLLOW A REASON) false
QXcbWindow: Unhandled client message: "_NET_SHOWING_DESKTOP"

The first 2 times that didn't work, the third and fourth time that worked (windows hided and restored)
Comment 26 Thomas Lübking 2015-11-26 23:27:18 UTC
Ok, that just reflects your descripted actions (though I'm a bit puzzled by the QXcbWiindow warning), so the state doesn't get actually broken.

This patch prints out all windows that get their layer revisited while showing the desktop.
The desktop window shall be among them and its last value shall *always* be "true".
All other windows shall "relate" to the desktop (ie. some dock or the wallpaper dialog etc. etc., not kwrite or dolphin)

You can see the desktop WId by calling "xwininfo -int" and clicking the desktop.

diff --git a/abstract_client.cpp b/abstract_client.cpp
index cbe5eb6..d4a52b0 100644
--- a/abstract_client.cpp
+++ b/abstract_client.cpp
@@ -216,6 +216,10 @@ void AbstractClient::invalidateLayer()
 
 Layer AbstractClient::belongsToLayer() const
 {
+    if (workspace()->showingDesktop()) {
+        qDebug() << "\'ID:" << window() << ";WMCLASS:" << resourceClass() << ":"
+           << resourceName() << ";Caption:" << caption() << "\'" << geometry() << isDesktop();
+    }
     // NOTICE while showingDesktop, desktops move to the AboveLayer
     // (interchangeable w/ eg. yakuake etc. which will at first remain visible)
     // and the docks move into the NotificationLayer (which is between Above- and
Comment 27 jeremy9856 2015-11-27 07:29:50 UTC
This is the full output starting from  "kwin_x11 --replace &" with the 2 patches. Again the first 2 times that didn't work, the third and fourth time that worked (windows hided and restored). I made some others click to show that : "xwininfo: Window id: 41943059 "Desktop — Plasma""

I don't remember if it happen the first time but there is some "Show Desktop: BROKEN (init)" :

Show Desktop: BROKEN (init)
Show Desktop: (THIS SHOULD FOLLOW A REASON) false
Show Desktop: BROKEN (client took focus)
Show Desktop: (THIS SHOULD FOLLOW A REASON) false
QXcbConnection: XCB error: 8 (BadMatch), sequence: 1215, resource id: 18874373, major code: 42 (SetInputFocus), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1717, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1718, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1719, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1720, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1727, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1728, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1729, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1730, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1731, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1732, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1733, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1734, resource id: 0, major code: 14 (GetGeometry), minor code: 0
Show Desktop: BROKEN (client took focus)
Show Desktop: (THIS SHOULD FOLLOW A REASON) false
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 2552, resource id: 0, major code: 14 (GetGeometry), minor code: 0
Show Desktop: (external) true
Show Desktop: (THIS SHOULD FOLLOW A REASON) true
QXcbWindow: Unhandled client message: "_NET_SHOWING_DESKTOP"
Show Desktop: (external) false
Show Desktop: (THIS SHOULD FOLLOW A REASON) false
QXcbWindow: Unhandled client message: "_NET_SHOWING_DESKTOP"
Show Desktop: (external) true
Show Desktop: (THIS SHOULD FOLLOW A REASON) true
QXcbWindow: Unhandled client message: "_NET_SHOWING_DESKTOP"
Show Desktop: (external) false
Show Desktop: (THIS SHOULD FOLLOW A REASON) false
QXcbWindow: Unhandled client message: "_NET_SHOWING_DESKTOP"
Show Desktop: BROKEN (client took focus)
Show Desktop: (THIS SHOULD FOLLOW A REASON) false
Show Desktop: BROKEN (client took focus)
Show Desktop: (THIS SHOULD FOLLOW A REASON) false
Comment 28 Thomas Lübking 2015-11-27 08:55:51 UTC
The BROKEN message means that the state gets broken (because a client got activated) - it's printed even if the state isn't active, so that's no problem.

However, either the second patch did not apply or the layer of the desktop (or any other window) doesn't get updated while the state is active. It should actually never work...
The patch applied for sure? There was no error message (about failed hunks)?
Comment 29 jeremy9856 2015-11-27 09:11:41 UTC
The patch don't seem to be complete and doesn't work. I have this message when I try to apply it :

patching file abstract_client.cpp
patch unexpectedly ends in middle of line
Hunk #1 FAILED at 216.
1 out of 1 hunk FAILED -- saving rejects to file abstract_client.cpp.rej

So I removed the comments and used this only :

diff --git a/abstract_client.cpp b/abstract_client.cpp
index cbe5eb6..d4a52b0 100644
--- a/abstract_client.cpp
+++ b/abstract_client.cpp
@@ -216,6 +216,10 @@ void AbstractClient::invalidateLayer()
 
 Layer AbstractClient::belongsToLayer() const
 {
+    if (workspace()->showingDesktop()) {
+        qDebug() << "\'ID:" << window() << ";WMCLASS:" << resourceClass() << ":"
+           << resourceName() << ";Caption:" << caption() << "\'" << geometry() << isDesktop();
+    }

And that seem to work :

patching file abstract_client.cpp
Hunk #1 succeeded at 155 with fuzz 2 (offset -61 lines).

Just to be sure this is the output when I apply the first patch :

patching file client.cpp
Hunk #1 succeeded at 1426 (offset 36 lines).
patching file effects.cpp
Hunk #1 succeeded at 914 (offset -4 lines).
patching file netinfo.cpp
patching file useractions.cpp
Hunk #1 succeeded at 1475 (offset 32 lines).
patching file workspace.cpp
Hunk #1 succeeded at 356 (offset 8 lines).
Hunk #2 succeeded at 915 (offset -1 lines).
Hunk #3 succeeded at 1037 (offset -1 lines).
Hunk #4 succeeded at 1247 (offset -1 lines).

Also note that I use the 5.4 branch.
Comment 30 Thomas Lübking 2015-11-27 09:23:22 UTC
(In reply to jeremy9856 from comment #29)

> patching file abstract_client.cpp
> patch unexpectedly ends in middle of line

Copy/paste issue from bugzilla - sorry, I should have anticipated that and attached the patch as file.

Please check again with the succeeded patch now.
Comment 31 jeremy9856 2015-11-27 09:29:15 UTC
The output from comment 27 is already with the succeeded patch ;)
I saw by myself that the patch had a problem and "fix" it before posting the output. In comment 29 I explained to you what I did to be sure that there is no problem.
Comment 32 Thomas Lübking 2015-11-27 10:25:43 UTC
Created attachment 95772 [details]
debug layer updates on desktop showing

Seems we narrowed our problem then.
Attached is a cross-test, should be sufficient to run w/o the other two patches (informes that the state changes and which windows - if any - get layer updates)
Comment 33 jeremy9856 2015-11-27 11:55:37 UTC
Output from the lastest patch (only this one applied) with the same behavior (the first 2 times that didn't work, the third and fourth time that worked (windows hided and restored)) :

layer update 'ID: 41943068 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Plasma" ' QRect(0,943 1920x34)
layer update 'ID: 41943059 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977)
layer update 'ID: 41943059 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977)
set showing desktop false
layer update 'ID: 41943068 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Plasma" ' QRect(0,943 1920x34)
layer update 'ID: 41943059 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977)
layer update 'ID: 41943059 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977)
QXcbConnection: XCB error: 8 (BadMatch), sequence: 1118, resource id: 23068677, major code: 42 (SetInputFocus), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1476, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1477, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1478, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1479, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1480, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1481, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1482, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1483, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1486, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1487, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1488, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1489, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1490, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1491, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1492, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1493, resource id: 0, major code: 14 (GetGeometry), minor code: 0
set showing desktop false
layer update 'ID: 41943068 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Plasma" ' QRect(0,943 1920x34)
layer update 'ID: 41943059 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977)
layer update 'ID: 41943059 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977)
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 2159, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 2160, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 2161, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 2162, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 2163, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 2164, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 2165, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 2166, resource id: 0, major code: 14 (GetGeometry), minor code: 0
set showing desktop true
layer update 'ID: 41943068 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Plasma" ' QRect(0,943 1920x34)
layer update 'ID: 41943059 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977)
layer update 'ID: 41943068 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Plasma" ' QRect(0,943 1920x34)
layer update 'ID: 41943059 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977)
QXcbWindow: Unhandled client message: "_NET_SHOWING_DESKTOP"
set showing desktop false
layer update 'ID: 41943068 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Plasma" ' QRect(0,943 1920x34)
layer update 'ID: 41943059 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977)
layer update 'ID: 41943068 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Plasma" ' QRect(0,943 1920x34)
layer update 'ID: 41943059 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977)
QXcbWindow: Unhandled client message: "_NET_SHOWING_DESKTOP"
set showing desktop true
layer update 'ID: 41943068 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Plasma" ' QRect(0,943 1920x34)
layer update 'ID: 41943059 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977)
layer update 'ID: 41943068 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Plasma" ' QRect(0,943 1920x34)
layer update 'ID: 41943059 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977)
QXcbWindow: Unhandled client message: "_NET_SHOWING_DESKTOP"
set showing desktop false
layer update 'ID: 41943068 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Plasma" ' QRect(0,943 1920x34)
layer update 'ID: 41943059 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977)
layer update 'ID: 41943068 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Plasma" ' QRect(0,943 1920x34)
layer update 'ID: 41943059 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977)
QXcbWindow: Unhandled client message: "_NET_SHOWING_DESKTOP"
set showing desktop false
layer update 'ID: 41943068 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Plasma" ' QRect(0,943 1920x34)
layer update 'ID: 41943059 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977)
layer update 'ID: 41943068 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Plasma" ' QRect(0,943 1920x34)
layer update 'ID: 41943059 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977)
Comment 34 Thomas Lübking 2015-11-27 21:55:24 UTC
Pheeewww.... the second patch didn't apply (otherwise we'd now have a problem)

This should do (no cnp error, the function isn't in the same file in 5.4, the result should not even have compiled ;-)
You can omit the other two patches.

diff --git a/layers.cpp b/layers.cpp
index d8328cc..48711a1 100644
--- a/layers.cpp
+++ b/layers.cpp
@@ -808,6 +808,10 @@ Layer Client::layer() const
 
 Layer Client::belongsToLayer() const
 {
+    if (workspace()->showingDesktop()) {
+        qDebug() << "\'ID:" << window() << ";WMCLASS:" << resourceClass() << ":"
+           << resourceName() << ";Caption:" << caption() << "\'" << geometry() << isDesktop();
+    }
     // NOTICE while showingDesktop, desktops move to the AboveLayer
     // (interchangeable w/ eg. yakuake etc. which will at first remain visible)
     // and the docks move into the NotificationLayer (which is between Above- and
Comment 35 jeremy9856 2015-11-27 22:05:52 UTC
What do you mean by the second patch didn't apply. On Comment 33 the third patch (debug layer updates on desktop showing) you give me applied. I only applied this one for the test on comment 33.

When you say "You can omit the other two patches" do you mean that I should now just use the fourth patch from comment 34 ?

Every patch you give me applied but I'm doing it right ? This is what I do :

git clone git://anongit.kde.org/kwin.git
cd kwin
git checkout Plasma/5.4
patch < /home/jeremy/patch.file
mkdir build
cd build
ccmake ..
[press c, e, c, e, g]
make && sudo make install
Comment 36 Thomas Lübking 2015-11-27 22:24:22 UTC
(In reply to jeremy9856 from comment #35)
> What do you mean by the second patch didn't apply.

The one I posted and you edited.
The edit stripped so much context that the patch system could apply it "somewhere", but not in the correct position. Thus we got no output (while from the third patch we really should have - or things were *severly* broken, like symbols wrongly resolved by the linker)

> When you say "You can omit the other two patches" do you mean that I should
> now just use the fourth patch from comment 34 ?

Yupp.
 
> Every patch you give me applied but I'm doing it right ? This is what I do :

you can now just:
---------------
git reset --hard HEAD
patch < /home/jeremy/patch.file
cd build
make && sudo make install
Comment 37 jeremy9856 2015-11-27 22:30:49 UTC
OK.

The patch from comment 34 seems truncated too. Is it ok ?
Comment 38 Thomas Lübking 2015-11-27 23:07:16 UTC
(In reply to jeremy9856 from comment #37)
> The patch from comment 34 seems truncated too. Is it ok ?

Yes, the comment continues in the following line (which is no more part of the regular context)
Comment 39 jeremy9856 2015-11-27 23:32:16 UTC
Output from the lastest patch (only this one applied) with the same behavior (the first 2 times that didn't work, the third and fourth time that worked (windows hided and restored)) :

QXcbConnection: XCB error: 8 (BadMatch), sequence: 1114, resource id: 58720261, major code: 42 (SetInputFocus), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1472, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1473, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1474, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1475, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1476, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1477, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1478, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1479, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1482, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1483, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1484, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1485, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1486, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1487, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1488, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1489, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 2218, resource id: 0, major code: 14 (GetGeometry), minor code: 0
'ID: 31457308 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Plasma" ' QRect(0,943 1920x34) false
'ID: 31457299 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977) true
'ID: 31457308 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Plasma" ' QRect(0,943 1920x34) false
'ID: 31457308 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Plasma" ' QRect(0,943 1920x34) false
'ID: 31457299 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977) true
'ID: 31457299 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977) true
QXcbWindow: Unhandled client message: "_NET_SHOWING_DESKTOP"
'ID: 58720261 ;WMCLASS: "konsole" : "konsole" ;Caption: "build : bash — Konsole" ' QRect(567,220 786x503) false
'ID: 31457299 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977) true
'ID: 31457299 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977) false
'ID: 31457299 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977) false
QXcbWindow: Unhandled client message: "_NET_SHOWING_DESKTOP"
'ID: 31457308 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Plasma" ' QRect(0,943 1920x34) false
'ID: 31457299 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977) true
'ID: 31457308 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Plasma" ' QRect(0,943 1920x34) false
'ID: 31457308 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Plasma" ' QRect(0,943 1920x34) false
'ID: 31457299 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977) true
'ID: 31457299 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977) true
QXcbWindow: Unhandled client message: "_NET_SHOWING_DESKTOP"
QXcbWindow: Unhandled client message: "_NET_SHOWING_DESKTOP"
Comment 40 jeremy9856 2015-11-29 16:02:31 UTC
Any news ?
Comment 41 jeremy9856 2015-11-30 21:48:59 UTC
Hello Thomas,
Don't forget me ;)
Comment 42 Thomas Lübking 2015-11-30 22:24:30 UTC
I don't forget you, I just have 100 unread mails in my inbox (no shit - and it's 23:20 now ...)

The relevant ouput will be
> 'ID: 31457299 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977) true
> 'ID: 31457299 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977) false
> 'ID: 31457299 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' QRect(0,0 1920x977) false

The desktop window seems to alter it's type at this point and is suddenly no longer a desktop (thus not moved above)

Next is to figure whether this is correct.
Please add a kwin rule ("kcmshell5 kwinrules") for the desktop (use the detect button, but match all window types!) to force the type to "Desktop".
This should prevent the behavior (and then we can check why we stop thinking that it's a desktop)
Comment 43 Kai Uwe Broulik 2015-11-30 22:25:36 UTC
Desktop window changing window type sounds awfully like the Dashboard.
Comment 44 jeremy9856 2015-11-30 22:37:35 UTC
> I don't forget you, I just have 100 unread mails in my inbox (no shit - and it's 23:20 now ...)
Sorry about that. I can wait, it's not a big problem.

> Please add a kwin rule ("kcmshell5 kwinrules") for the desktop (use the detect button, but match all window types!) to force the type to "Desktop".
> This should prevent the behavior (and then we can check why we stop thinking that it's a desktop)
You are right, that works ! Take your time for the next tests ;)
Comment 45 Thomas Lübking 2015-11-30 23:04:07 UTC
Not your fault (nor will I manage to handle them all tonight ;-)

Kai will be right on this since I just confirmed that this needs to happen for a type change from outside (unless you already had a rule for the desktop in place?)

But this would have happened in 5.3.2 and 5.4.3 ... the dashboard should be gone.

I can however even reproduce it. Turning off the compositor and trying "sufficiently enough" the invocation sometimes (rarely) fails.
The false type seems to be intermediate (explaining the occasionally), since when my inspection xprop timer hit several seconds later, it was (back to?) _NET_WM_WINDOW_TYPE_DESKTOP.

Not reproducible with other desktops at all.

=> Marco, any idea why the desktop would change its type when showing the desktop?
Comment 46 jeremy9856 2015-11-30 23:08:20 UTC
> Kai will be right on this since I just confirmed that this needs to happen for a type change from outside (unless you already had a rule for the desktop in place?)
I don't have one (except the one you ask me to add).
Comment 47 Thomas Lübking 2015-12-01 23:34:44 UTC
Ok, did "xprop -spy _NET_WM_WINDOW_TYPE" on the plasmashell desktop window and it changes like hell on desktop showing, most of the time from _NET_WM_WINDOW_TYPE_DESKTOP to _NET_WM_WINDOW_TYPE_DESKTOP (why does it "update" its type property???) and sometimes it turnes into "_KDE_NET_WM_WINDOW_TYPE_OVERRIDE, _NET_WM_WINDOW_TYPE_NORMAL", so when the layer update looks "at a bad time", it's not a desktop.

This is clearly a bug in plasmashell, re-assigning.
Comment 48 Marco Martin 2015-12-03 13:36:40 UTC
there is an ensureWindowType() in DesktopView that seems a bit too happy about re setting the type on a lot of kinds of events, so yeah, that has to be redesigned a bit

is it safe (and fast enough) checking what the existing window type is fairly often?
Comment 49 Thomas Lübking 2015-12-03 13:59:07 UTC
(In reply to Marco Martin from comment #48)

> is it safe (and fast enough) checking what the existing window type is
> fairly often?

I beg your pardon??

The KWindowSystem classes operate on locally cached data, so the X property isn't read on queries, but when it changes. The check is always "safe".

Why do you think you need to "ensureWindowType()"?
Nothing but the client (plasmashell) should ever change the type anyway.

Indeed, it actually "should" (only) be set for an unmapped (before showing/managing) window - KWin is a bit graceful to respect runtime changes here (likely because the spec says "should" - and once more it's no way clear what the expected behavior is itr....)

=> The "correct" behavior is to set the type before showing the screen and then "expecting" it to remain untouched. If "something else™" touches *your* property, "something else™" is maicious or broken.
Comment 50 Martin Flöser 2015-12-03 15:16:37 UTC
> The "correct" behavior is to set the type before showing the screen and then "expecting" it to remain untouched. If "something else™" touches *your* property, "something else™" is maicious or broken.

in theory yes, in practice: well Qt might mess with it
Comment 51 Marco Martin 2015-12-03 15:20:45 UTC
because the whole api of that class was done around that yeah, was fine to change window type at runtime. since it turned out it isn't, the dashboard thing was removed, still a lot of untangling has to be done.
probably it should be able to set the window type only before a window show?
Comment 52 Thomas Lübking 2015-12-03 15:43:52 UTC
Unless Qt screws something (implicitly, by generating a new drawable?) you should only have to set the window type *once*.
Unfortunately, Qt::WA_X11NetWmWindowTypeDesktop is only available for QWidget (and I assume it's not?)

Is there any bugreport on the type being altered unwantedly or can we assume that this is just a leftover from the desktop -> dashboard approach?
Comment 53 Martin Flöser 2015-12-03 15:50:20 UTC
> Qt::WA_X11NetWmWindowTypeDesktop is only available for QWidget (and I assume it's not?)

AFAIK it's anyway ignored in the xcb platform.
Comment 54 jeremy9856 2015-12-09 17:42:51 UTC
Any news about this ?
Thanks.
Comment 55 jeremy9856 2016-01-02 16:13:09 UTC
No interest in fixing this ?
Comment 56 jeremy9856 2016-01-22 14:01:40 UTC
??
Comment 57 jeremy9856 2016-02-19 09:48:34 UTC
Is there a fix planned ?
Comment 58 Martin Flöser 2016-02-19 10:13:29 UTC
I cannot reproduce the problem on latest master. The desktop window stays in window type desktop.
Comment 59 jeremy9856 2016-02-19 10:17:11 UTC
I will check on my side but that's great if it's already fixed !
Martin, is it working even with what Thomas said in Comment 47 ?
Comment 60 Martin Flöser 2016-02-19 10:24:45 UTC
oh no, with xprop spy I can still see changes. Sorry for the noise
Comment 61 jeremy9856 2016-02-19 10:29:07 UTC
I confirm too that with plasma 5.5.4 the problem is still here. The "show desktop" feature doesn't work everytime.
Comment 62 Thomas Lübking 2016-07-14 22:12:34 UTC
*** Bug 365685 has been marked as a duplicate of this bug. ***
Comment 63 Thomas Lübking 2016-07-14 22:17:51 UTC
@Jeremy, as a workaround create a kwin rule (this oc. requires you to use kwin as WM ;-) to enforce the desktop to be of desktop type.

Ensure to match normal and "unmanged" windows as well to have the rule applied.

Plasma can then fight with QtQuick on juggling the type as much as it wants, KWin simply won't look there anymore.
Comment 64 jeremy9856 2016-07-14 23:15:16 UTC
Thanks Thomas but I had enough of KDE5/KF5/Plasma5 bugs so I switch to Gnome 3 :D
Comment 65 Thomas Lübking 2016-07-15 13:13:28 UTC
According to the latest dupe, this isn't limited to desktop showing but the type juggling also occurs when simply clicking the desktop when as a result the desktop eg. moves above keep below windows.
Comment 66 jeremy9856 2016-08-20 20:29:33 UTC
Hello Thomas,

I'm thinking using KDE again so what do you want me to test exactly ?

Thanks !
Comment 67 Thomas Lübking 2016-08-26 20:25:02 UTC
Sorry for the delay (but I'm officially no longer here ;-)

run "kcmshell5 kwinrules", "detect", click the desktop, ensure to select *all* window types in the lower listview of the main dialog and finally in its "appearance and fixes" tab, force the window to be of desktop type.
Comment 68 jeremy9856 2016-08-27 00:00:48 UTC
That doesn't change anything it seems. "show desktop" doesn't work sometime.
Comment 69 jeremy9856 2016-08-27 00:18:43 UTC
Well I spook too soon. The rule wasn't saved (I probably didn't click on "apply" even if I thought I had). So with the rule "show desktop" seem to work properly.
Comment 70 jeremy9856 2016-09-16 09:53:42 UTC
It seem to happen far less frequently now but still happen (Manjaro, Plasma 5.7.4, KF 5.25, Qt 5.7).
Comment 71 jeremy9856 2017-07-04 05:29:42 UTC
Is it fixed now ?
Comment 72 jeremy9856 2017-09-21 18:44:01 UTC
Do you know if it's fixed now ?
Comment 73 Alexander Mentyu 2017-12-07 12:04:00 UTC
Looks related to https://bugs.kde.org/show_bug.cgi?id=351039
Comment 74 Alexander Mentyu 2017-12-07 12:30:22 UTC
Can't reproduce in:

Distribution: KDE neon Developer Edition - Stable Branches
Plasma: 5.11.4
Frameworks: 5.41.0
Qt: 5.9.3
Kernel 4.10.0-40-generic
Type: 64-bit
Comment 75 Nate Graham 2018-01-30 14:44:15 UTC
I also can't reproduce in 5.11.5, Frameworks 5.41, and Qt 5.9.1.

For anyone who is still hitting this with recent versions of things, can you list them here? Thanks!
Comment 76 Nate Graham 2020-01-22 18:26:35 UTC
Yeah, fixed now.