When using multiple X screens (3 in this case), kscreenlocker-greet behaves very badly and insecurely.
It appears to be drawing the desktop background image/screensaver images for all three X screens to the primary screen (0) and doesn't blank/screensave the monitors belonging to screens 1 and 2 (which leaves their contents in view), and it displays 2, maybe 3 greeter dialogs (1 may be hidden) on the primary X screen, but only accepts typed password input in 1 of them (the primary X screen's dialog).
When using multiple X screens (3 in this case), kscreenlocker-greet behaves very badly and insecurely.
It appears to be drawing the desktop background image/screensaver images for all three X screens to the primary screen (0) and doesn't blank/screensave the monitors belonging to screens 1 and 2 (which leaves their contents in view), and it displays 2, maybe 3 greeter dialogs (1 may be hidden) on the primary X screen, but only accepts typed password input in 1 of them (the primary X screen's dialog).
Reading the source-code at
ksmserver/ screenlocker/ greeter/ greeterapp. cpp::UnlockApp: :desktopResized ()
it appears to iterate the screens via desktop( )->screenCount( ) but assumes there is only one X display when showing the ScreenSaverWindow.
Reproducible: Always
Steps to Reproduce:
1. Configure multiple X screens
2. Lock
Actual Results:
All background images and screensavers are drawn to X screen 0
Expected Results:
Each background image and screensaver should be rendered on the correct X screen
I'm testing a possible fix which passes display( )->screen( i) to the QDeclarativeView constructor.
Photographs of the screens are attached to the referenced Ubuntu bug report #1264821.