Bug 313835

Summary: can see desktop content when desktop locked and a new monitor connected
Product: [Unmaintained] kscreensaver Reporter: Aaron J. Seigo <aseigo>
Component: lockerAssignee: kscreensaver bugs tracking <kscreensaver-bugs-null>
Status: RESOLVED FIXED    
Severity: grave CC: kwin-bugs-null
Priority: NOR    
Version: 4.9.98 RC3   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Aaron J. Seigo 2013-01-24 16:00:33 UTC
happily using kscreen, i noticed a new problem with the lock screen when the laptop is locked and a new monitor is plugged in. kscreen turns off the laptop monitor, activates the external monitor, and i can suddenly see my dekstop / windows .. the session is still locked, however.

this only happens with compositing active. without compositing, everything works as expected.

i have confirmed that:

* the view is being moved to the new monitor
* the view is resized correctly

if i remove the _KDE_SCREEN_LOCKER atom from the locker qml view window in UnlockApp::eventFilter in ksmserver/screenlocker/greeter/greeterapp.cpp then it flickers madly and can not be interacted with when the monitor change occurs.

as this is a security issue, i've marked the bug severity as GRAVE. feel free to adjust to taste :)

Reproducible: Always

Steps to Reproduce:
1. with a laptop, teach kscreen to turn off the laptop screen and active an external screen on being plugged in (or equiv with a multi-screen desktop)
2. with the laptop not plugged into the external monitor, lock the desktop (qdbus org.kde..ksmserver /ScreenSaver Lock)
3. plug in the second monitor
Comment 1 Martin Flöser 2013-01-24 16:13:35 UTC
I'm not convinced that this bug is in KWin - the fact that it is only showing with compositing doesn't say much.

The Greeter is an Unmanaged window as we can see in ksmserver/screenlocker/greeter/greeterapp.cpp:
view->setWindowFlags(Qt::X11BypassWindowManagerHint);

So KWin is not responsible for correctly positioning it. This has to be done by ksmserver.
Comment 2 Thomas Lübking 2013-01-24 16:19:18 UTC
Afaiu the black lockscreen window is supposed to protect the content.

I can confirm that it does NOT update it's size (noticed that after fixing the qml greeter adaption) and actually wanted to look into that (not gonna be /that/ simple since it freaks around in the X11 event processing, don't expect to receive some event from QDesktopWidget)


I agree that this should not actually be an issue of compositing, the locker is not supposed to be ARGB, so you should neverever be able to look through.
Comment 3 Thomas Lübking 2013-01-25 23:07:11 UTC
https://git.reviewboard.kde.org/r/108585/
Comment 4 Aaron J. Seigo 2013-01-30 09:33:28 UTC
Git commit 7f48bf01b3092f9232b095be42995c7ef0de5c1e by Aaron Seigo.
Committed on 30/01/2013 at 10:29.
Pushed by aseigo into branch 'KDE/4.10'.

the window needs to be *raised*

it is not managed by the window manager (explicitly) so it needs to handle
this itself.

this completes the "fix the situation when new screens appear while locked"
problem

REVIEW:108643

M  +1    -1    ksmserver/screenlocker/greeter/greeterapp.cpp

http://commits.kde.org/kde-workspace/7f48bf01b3092f9232b095be42995c7ef0de5c1e