Bug 359327

Summary: Exiting game a in Steam Big Picture Mode gets semi-windowed BPM
Product: [Plasma] kwin Reporter: André Fettouhi <A.Fettouhi>
Component: generalAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED UPSTREAM    
Severity: normal CC: carloscg, cfeck, chriswhy, contact, jckeerthan, liamdawe, michal, shawn.peterson
Priority: NOR    
Version: 5.14.4   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: steam output
xev output
xprop output
xwininfo output
xev

Description André Fettouhi 2016-02-12 17:54:15 UTC
I'm running Steam on my Arch Linux 64 bit box with a i7-2600k board and GTX 580 card and the latest Nvidia drivers (as of this writing I'm using 361.28). As my desktop I'm using KDE Plasma 5 also latest stable version available. I bought a Steam Controller a couple of months and I've been using it as my main controller with Steam Big Picture Mode. I've noticed with every game I run that if start the game from BPM that when I exit the game BPM is no longer in fullscreen and the statusbar is suddenly visible below and I have to click in the icon in the statusbar to make it go fullscreen. Not a huge issue but annoying.

Reproducible: Always

Steps to Reproduce:
1. Start Steam
2. Start Big Picture Mode
3. Start a game
4. Exit game

Actual Results:  
BPM was in a semi-windowed mode with KDE statusbar visible.

Expected Results:  
BPM should fullscreen after exit of game.

Has been also reported on Steam Linux's github page and they suggested that it I file it here as well. See link below:

https://github.com/ValveSoftware/steam-for-linux/issues/4313
Comment 1 Shawn 2016-04-20 01:35:00 UTC
I can confirm this behavior.  Running manjaro linux on my machine.
Comment 2 Keerthan Jaic 2016-05-08 12:19:34 UTC
I have the same issue on Arch.
Comment 3 Neros 2016-05-24 19:33:27 UTC
I can confirm the behavior too. Running on Arch.
Comment 4 Michal Breškovec 2016-06-26 09:52:35 UTC
Hello, I can confirm this behavior on Kubuntu 15.10 64bit and 16.04 64bit.
Comment 5 Christoph Feck 2016-10-17 04:19:15 UTC
> I'm using KDE Plasma 5 also latest stable version available.

Plasma 5.8.1?

Please set the correct version information.
Comment 6 Christoph Feck 2016-10-17 04:20:59 UTC
In the future, please report to product "kde" if you do not know the correct product. Using Planet KDE does not even reach the QA Team, because Planet KDE is ... well ... planetkde.org
Comment 7 Martin Flöser 2016-10-17 05:24:30 UTC
Which window is having focus when the game exits?
Comment 8 Shawn 2016-10-17 11:55:49 UTC
(In reply to Martin Gräßlin from comment #7)
> Which window is having focus when the game exits?

The steam overlay still has focus.  It is still fullscreen, too.  But the panel is now visible on top.
Comment 9 Martin Flöser 2016-10-17 13:13:57 UTC
(In reply to Shawn from comment #8)
> (In reply to Martin Gräßlin from comment #7)
> > Which window is having focus when the game exits?
> 
> The steam overlay still has focus.  It is still fullscreen, too.  But the
> panel is now visible on top.

are you sure it's having focus. That would not be like how KWin handles fullscreen windows. An active fullscreen window is above the panel. Only non-active fullscreen windows are below panel.
Comment 10 Shawn 2016-10-17 13:20:09 UTC
(In reply to Martin Gräßlin from comment #9)
> (In reply to Shawn from comment #8)
> > (In reply to Martin Gräßlin from comment #7)
> > > Which window is having focus when the game exits?
> > 
> > The steam overlay still has focus.  It is still fullscreen, too.  But the
> > panel is now visible on top.
> 
> are you sure it's having focus. That would not be like how KWin handles
> fullscreen windows. An active fullscreen window is above the panel. Only
> non-active fullscreen windows are below panel.

Well, it certainly seems like it.  I tried it again with no other programs open (other than system stuff of course).  The task manager has steam highlighted as if it is selected.  When I click on steam in the task manager, it minimizes steam.  This indicates to me that it did indeed have focus.  If I click on the task manager again, steam unminimizes and is in proper full screen again.
Comment 11 Martin Flöser 2016-10-17 14:37:50 UTC
As we don't have a version information: can anyone test with Plasma 5.8.1 - our current release?
Comment 12 André Fettouhi 2016-10-17 17:20:53 UTC
(In reply to Martin Gräßlin from comment #11)
> As we don't have a version information: can anyone test with Plasma 5.8.1 -
> our current release?

Still present in Plasma 5.8.1 on Arch Linux 64 bit. Using a Nvidia 970 GTX and i7-6700K with 32 GB RAM.
Comment 13 Martin Flöser 2016-10-18 05:25:35 UTC
Unfortunately for further investigation I would have to run it myself. But I don't have steam or any games and there is no easy way for me to get it as it's non-free software. Are there any other applications you experience the problem with?
Comment 14 André Fettouhi 2016-10-18 11:16:46 UTC
(In reply to Martin Gräßlin from comment #13)
> Unfortunately for further investigation I would have to run it myself. But I
> don't have steam or any games and there is no easy way for me to get it as
> it's non-free software. Are there any other applications you experience the
> problem with?

No the problem is only with Steam in BPM. If you are able to install Steam there are free games on Steam, free as in gratis.
Comment 15 Martin Flöser 2016-10-28 19:01:55 UTC
Actually I think there are more ways to investigate without having the software.

Please provide me the output of:
xprop -root

when the problem occurs (e.g. form tty2 with DISPLAY=:0 xpror -root). Please do not run it from a konsole in the current session, that would destroy what I'm looking for.

In addition I need the output of xwininfo. That will turn into a cross to click. Please click the steam bpm window.

Also it would be nice to have the output of
xev -root

running while the problem occurs.
Comment 16 André Fettouhi 2016-10-28 19:38:30 UTC
Tried to do what you ask but I can't seem to get it to work. I don't have xev installed or neither xwininfo and don't know what package that belongs to on Arch Linux. When exactly do you want the

DISPLAY=:0 xprop -root

run after the issue appears in Steam?
Comment 17 Martin Flöser 2016-10-28 19:46:23 UTC
A quick google gave me "extra/xorg-utils" for Arch

> When exactly do you want the
>
> DISPLAY=:0 xprop -root
>
> run after the issue appears in Steam?

yes, exactly when the problem is visible. This command will tell me what's the active window.
Comment 18 André Fettouhi 2016-10-28 20:21:30 UTC
Created attachment 101862 [details]
steam output
Comment 19 André Fettouhi 2016-10-28 20:22:06 UTC
Created attachment 101863 [details]
xev output
Comment 20 André Fettouhi 2016-10-28 20:22:32 UTC
Created attachment 101864 [details]
xprop output
Comment 21 André Fettouhi 2016-10-28 20:23:00 UTC
Created attachment 101865 [details]
xwininfo output
Comment 22 André Fettouhi 2016-10-28 20:24:09 UTC
OK, i have added as attrachments now to this bug report the outputs you requested from xev, xwininfo, xprop and steam itself. Hope this is useful.
Comment 23 Martin Flöser 2016-10-29 13:08:34 UTC
Thanks, there are two things which I find interesting: the xwininfo is plasma. Did you maybe click a panel?

The second thing I find interesting is that the xev output says that showing desktop state got activated. Did you do that actively (e.g. through the shortcut, plasmoid or something else) or could it be that steam enters that mode?
Comment 24 André Fettouhi 2016-10-29 18:56:19 UTC
No I did nor click a panel as far as I am aware. Don't know about xev and its output other than that the lower panel of the plasma desktop is visible after you exist a game in Steam BPM which is the whole issdue in the first place.
Comment 25 Liam Dawe 2017-02-03 12:22:28 UTC
To confirm I also have this same issue, here's a video to show you it happening:
https://www.youtube.com/watch?v=tz_zEV9o-Ig

This is on an up to date Arch install.
Comment 26 André Fettouhi 2018-01-26 07:48:30 UTC
The issue still persists for me with the latest KDE and Steam client but a small change has happened though. When exiting a game now for me at least some times. The Steam BPM is completely minimized.
Comment 27 André Fettouhi 2018-01-26 07:49:56 UTC
Forgot to that this on a new machine with a i7-6700K board with 32 GB RAM and 1080 GTX card with the latest nvidia drivers and KDE Plasma on Arch Linux.
Comment 28 Vlad Zahorodnii 2019-01-12 13:59:07 UTC
I did some investigation... When steam launches a game, it leaves the fullscreen, which is sensible. After quitting a game, it seems like Steam enters the fullscreen mode back again, but NETWinInfo misses the corresponding client message.
Comment 29 Martin Flöser 2019-01-12 14:24:43 UTC
> NETWinInfo misses the corresponding client message.

Impossible. It would mean steam does it wrong and never sends the client message.
Comment 30 Vlad Zahorodnii 2019-01-12 15:03:53 UTC
Though we receive the client message but only after switching between virtual desktops back and forth, for example.

Specifically, quit a game, switch to another virtual desktop, switch back, at this point Steam's NETWinInfo receives the corresponding message.
Comment 31 Vlad Zahorodnii 2019-01-12 15:05:51 UTC
I should probably debug it with xev as well.
Comment 32 André Fettouhi 2019-01-12 15:09:03 UTC
So in the end, assuming your findings are correct, this is then an issue with Steam and not KDE?
Comment 33 Vlad Zahorodnii 2019-01-12 15:22:50 UTC
(In reply to André Fettouhi from comment #32)
> So in the end, assuming your findings are correct, this is then an issue
> with Steam and not KDE?

Well, no, it's still can be an issue in KWin. At this point, we still don't have enough information to make the final decision.
Comment 34 Vlad Zahorodnii 2019-01-12 15:57:54 UTC
Created attachment 117421 [details]
xev
Comment 35 Vlad Zahorodnii 2019-01-12 18:46:58 UTC
Steam is doing some fishy things.

Apparently, it changes _NET_WM_STATE property after quitting a game. There are two problems with that:
* The property is changed while the client is in the Iconic state. Clients can change _NET_WM_STATE only in the withdrawn state;
* We, most likely, don't honor _NET_WM_STATE set by clients (MUST != SHOULD).

Steam should just send a _NET_WM_STATE client message to the root window.
Comment 36 Vlad Zahorodnii 2019-01-12 18:49:13 UTC
> * We, most likely, don't honor _NET_WM_STATE set by clients (MUST != SHOULD).

Hmm, no, it looks like we honor it.
Comment 37 Vlad Zahorodnii 2019-01-12 19:04:24 UTC
I suggest to file an upstream bug report.
Comment 38 André Fettouhi 2019-01-12 20:38:07 UTC
There are two bug reports on github already for this. See here

https://github.com/ValveSoftware/steam-for-linux/issues/4611

https://github.com/ValveSoftware/steam-for-linux/issues/4313