diff --git a/ksmserver/shutdowndlg.cpp b/ksmserver/shutdowndlg.cpp index a95b0a9b1..ad7e45903 100644 --- a/ksmserver/shutdowndlg.cpp +++ b/ksmserver/shutdowndlg.cpp @@ -187,6 +187,9 @@ KSMShutdownDlg::KSMShutdownDlg( QWindow* parent, requestActivate(); KWindowSystem::setState(winId(), NET::SkipTaskbar|NET::SkipPager); + + setMouseGrabEnabled(true); + setKeyboardGrabEnabled(true); } void KSMShutdownDlg::resizeEvent(QResizeEvent *e) @@ -204,6 +207,15 @@ void KSMShutdownDlg::resizeEvent(QResizeEvent *e) screen()->geometry().center().y() - height() / 2); } +void KSMShutdownDlg::mousePressEvent(QMouseEvent *e) +{ + QQuickView::mousePressEvent(e); + + if (!geometry().contains(e->globalPos())) { + reject(); + } +} + void KSMShutdownDlg::slotLogout() { m_shutdownType = KWorkSpace::ShutdownTypeNone; diff --git a/ksmserver/shutdowndlg.h b/ksmserver/shutdowndlg.h index d534ff623..a80be78d6 100644 --- a/ksmserver/shutdowndlg.h +++ b/ksmserver/shutdowndlg.h @@ -71,6 +71,8 @@ Q_SIGNALS: protected: void resizeEvent(QResizeEvent *e); + void mousePressEvent(QMouseEvent *e); + void keyPressEvent(QMouseEvent *e); private: KSMShutdownDlg( QWindow* parent, bool maysd, bool choose, KWorkSpace::ShutdownType sdtype, const QString& theme );