summaryrefslogtreecommitdiffstats
path: root/kdesktop/lock/lockdlg.cc
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-09-21 18:27:59 -0500
committerSlávek Banko <slavek.banko@axis.cz>2012-09-24 19:16:38 +0200
commitb3ab725915e6c9f69dd131502c095f2037b07383 (patch)
tree347f99c41cbade2ee45ea2d7f73d1b2b63013497 /kdesktop/lock/lockdlg.cc
parent84b246efa8d05c4746f18f13866fdbbe10522138 (diff)
downloadtdebase-b3ab725915e6c9f69dd131502c095f2037b07383.tar.gz
tdebase-b3ab725915e6c9f69dd131502c095f2037b07383.zip
Forcibly prevent transient override redirect windows from showing up over the lock screen
This closes Bug 1079 (cherry picked from commit 553923b25dc41e2c17ba9038eb225cd3bb9b1770)
Diffstat (limited to 'kdesktop/lock/lockdlg.cc')
-rw-r--r--kdesktop/lock/lockdlg.cc14
1 files changed, 12 insertions, 2 deletions
diff --git a/kdesktop/lock/lockdlg.cc b/kdesktop/lock/lockdlg.cc
index 5d35709b3..e64ce1f0d 100644
--- a/kdesktop/lock/lockdlg.cc
+++ b/kdesktop/lock/lockdlg.cc
@@ -573,9 +573,19 @@ void PasswordDlg::gplugActivity()
void PasswordDlg::gplugMsgBox( TQMessageBox::Icon type, const TQString &text )
{
- TQDialog dialog( this, 0, true, (WFlags)WX11BypassWM );
+ TQDialog dialog( this, 0, true, (trinity_desktop_lock_use_system_modal_dialogs?((WFlags)WStyle_StaysOnTop):((WFlags)WX11BypassWM)) );
+ if (trinity_desktop_lock_use_system_modal_dialogs) {
+ // Signal that we do not want any window controls to be shown at all
+ Atom kde_wm_system_modal_notification;
+ kde_wm_system_modal_notification = XInternAtom(qt_xdisplay(), "_KDE_WM_MODAL_SYS_NOTIFICATION", False);
+ XChangeProperty(qt_xdisplay(), dialog.winId(), kde_wm_system_modal_notification, XA_INTEGER, 32, PropModeReplace, (unsigned char *) "TRUE", 1L);
+ }
+ dialog.setCaption(i18n("Authentication Subsystem Notice"));
TQFrame *winFrame = new TQFrame( &dialog );
- winFrame->setFrameStyle( TQFrame::WinPanel | TQFrame::Raised );
+ if (trinity_desktop_lock_use_system_modal_dialogs)
+ winFrame->setFrameStyle( TQFrame::NoFrame );
+ else
+ winFrame->setFrameStyle( TQFrame::WinPanel | TQFrame::Raised );
winFrame->setLineWidth( 2 );
TQVBoxLayout *vbox = new TQVBoxLayout( &dialog );
vbox->addWidget( winFrame );