summaryrefslogtreecommitdiffstats
path: root/ksmserver
diff options
context:
space:
mode:
Diffstat (limited to 'ksmserver')
-rw-r--r--ksmserver/server.cpp2
-rw-r--r--ksmserver/server.h2
-rw-r--r--ksmserver/shutdown.cpp6
-rw-r--r--ksmserver/shutdowndlg.cpp20
-rw-r--r--ksmserver/shutdowndlg.h2
5 files changed, 24 insertions, 8 deletions
diff --git a/ksmserver/server.cpp b/ksmserver/server.cpp
index f4068a8f3..ce118a529 100644
--- a/ksmserver/server.cpp
+++ b/ksmserver/server.cpp
@@ -579,7 +579,7 @@ extern "C" int _IceTransNoListen(const char * protocol);
#endif
KSMServer::KSMServer( const TQString& windowManager, bool _only_local )
- : DCOPObject("ksmserver"), sessionGroup( "" )
+ : DCOPObject("ksmserver"), sessionGroup( "" ), shutdownNotifierIPDlg(0)
{
the_server = this;
clean = false;
diff --git a/ksmserver/server.h b/ksmserver/server.h
index 0fc900042..1fd55a217 100644
--- a/ksmserver/server.h
+++ b/ksmserver/server.h
@@ -174,6 +174,8 @@ private:
void saveCurrentSession();
void saveCurrentSessionAs( TQString );
+ TQWidget* shutdownNotifierIPDlg;
+
private:
TQPtrList<KSMListener> listener;
TQPtrList<KSMClient> clients;
diff --git a/ksmserver/shutdown.cpp b/ksmserver/shutdown.cpp
index 549fd2cc3..a153b2806 100644
--- a/ksmserver/shutdown.cpp
+++ b/ksmserver/shutdown.cpp
@@ -188,7 +188,7 @@ void KSMServer::shutdownInternal( KApplication::ShutdownConfirm confirm,
if (showFancyLogout) {
KSMShutdownIPFeedback::showit(); // hide the UGLY logout process from the user
- KSMShutdownIPDlg::showShutdownIP();
+ shutdownNotifierIPDlg = KSMShutdownIPDlg::showShutdownIP();
}
if ( saveSession )
@@ -553,6 +553,10 @@ void KSMServer::killWM()
{
state = KillingWM;
bool iswm = false;
+ if (shutdownNotifierIPDlg) {
+ shutdownNotifierIPDlg->close();
+ shutdownNotifierIPDlg=0;
+ }
for ( KSMClient* c = clients.first(); c; c = clients.next() ) {
if( isWM( c )) {
iswm = true;
diff --git a/ksmserver/shutdowndlg.cpp b/ksmserver/shutdowndlg.cpp
index 3deffdb71..c49e31974 100644
--- a/ksmserver/shutdowndlg.cpp
+++ b/ksmserver/shutdowndlg.cpp
@@ -516,10 +516,11 @@ void KSMShutdownFeedback::slotPaintEffect()
KSMShutdownIPFeedback * KSMShutdownIPFeedback::s_pSelf = 0L;
KSMShutdownIPFeedback::KSMShutdownIPFeedback()
- : TQWidget( 0L, "feedbackipwidget", Qt::WType_Dialog | Qt::WStyle_StaysOnTop | Qt::WX11BypassWM ), m_timeout(0)
+ : TQWidget( 0L, "feedbackipwidget", Qt::WType_Dialog | Qt::WStyle_StaysOnTop ), m_timeout(0)
{
setShown(false);
+ setWindowState(WindowFullScreen);
// Try to get the root pixmap
system("krootbacking &");
@@ -1093,7 +1094,7 @@ bool KSMShutdownDlg::confirmShutdown( bool maysd, KApplication::ShutdownType& sd
return result;
}
-void KSMShutdownIPDlg::showShutdownIP()
+TQWidget* KSMShutdownIPDlg::showShutdownIP()
{
kapp->enableStyles();
KSMShutdownIPDlg* l = new KSMShutdownIPDlg( 0 );
@@ -1110,17 +1111,26 @@ void KSMShutdownIPDlg::showShutdownIP()
timer->start( 0, TRUE );
kapp->disableStyles();
+
+ return l;
}
KSMShutdownIPDlg::KSMShutdownIPDlg(TQWidget* parent)
-// : TQDialog( 0, "", TRUE, Qt::WStyle_Customize | Qt::WType_Dialog | Qt::WStyle_NoBorder | Qt::WStyle_Title | Qt::WStyle_StaysOnTop | Qt::WDestructiveClose )
- : TQDialog( 0, "", TRUE, Qt::WStyle_Customize | Qt::WType_Popup | Qt::WStyle_NoBorder | Qt::WStyle_Title | Qt::WStyle_StaysOnTop | Qt::WX11BypassWM | Qt::WDestructiveClose )
+ : TQDialog( 0, "", TRUE, Qt::WStyle_Customize | Qt::WType_Dialog | Qt::WStyle_Title | Qt::WDestructiveClose )
{
+ // Signal that this window should stay on top of everything else
+ setModal(true);
+
+ // 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(), winId(), kde_wm_system_modal_notification, XA_INTEGER, 32, PropModeReplace, (unsigned char *) "TRUE", 1L);
+
TQVBoxLayout* vbox = new TQVBoxLayout( this );
TQFrame* frame = new TQFrame( this );
- frame->setFrameStyle( TQFrame::StyledPanel | TQFrame::Raised );
+ frame->setFrameStyle( TQFrame::NoFrame );
frame->setLineWidth( tqstyle().tqpixelMetric( TQStyle::PM_DefaultFrameWidth, frame ) );
// we need to set the minimum size for the window
frame->setMinimumWidth(400);
diff --git a/ksmserver/shutdowndlg.h b/ksmserver/shutdowndlg.h
index 0db328a79..72db4b1b1 100644
--- a/ksmserver/shutdowndlg.h
+++ b/ksmserver/shutdowndlg.h
@@ -144,7 +144,7 @@ class KSMShutdownIPDlg : public TQDialog
Q_OBJECT
public:
- static void showShutdownIP();
+ static TQWidget* showShutdownIP();
protected:
~KSMShutdownIPDlg();