Bug 313835 - can see desktop content when desktop locked and a new monitor connected
Summary: can see desktop content when desktop locked and a new monitor connected
Status: RESOLVED FIXED
Alias: None
Product: kscreensaver
Classification: Unclassified
Component: locker (show other bugs)
Version: 4.9.98 RC3
Platform: Compiled Sources Linux
: NOR grave (vote)
Target Milestone: ---
Assignee: kscreensaver bugs tracking
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-01-24 16:00 UTC by Aaron J. Seigo
Modified: 2013-01-30 09:33 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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