[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdebase/kdesktop/lock
From:       Luboš Luňák <l.lunak () kde ! org>
Date:       2004-08-16 13:55:42
Message-ID: 20040816135542.C540316B7A () office ! kde ! org
[Download RAW message or body]

CVS commit by lunakl: 

Save and restore what's painted on the window to help lame screensavers.
CCMAIL: 81553-done@bugs.kde.org


  M +8 -0      lockprocess.cc   1.38
  M +2 -0      lockprocess.h   1.17


--- kdebase/kdesktop/lock/lockprocess.cc  #1.37:1.38
@@ -788,5 +788,9 @@ void LockProcess::suspend()
 {
     if(!mSuspended)
+    {
         mHackProc.kill(SIGSTOP);
+        QApplication::syncX();
+        mSavedScreen = QPixmap::grabWindow( winId());
+    }
     mSuspended = true;
 }
@@ -799,5 +803,9 @@ void LockProcess::resume()
         return; // no need to resume, not visible
     if(mSuspended)
+    {
+        bitBlt( this, 0, 0, &mSavedScreen );
+        QApplication::syncX();
         mHackProc.kill(SIGCONT);
+    }
     mSuspended = false;
 }

--- kdebase/kdesktop/lock/lockprocess.h  #1.16:1.17
@@ -18,4 +18,5 @@
 #include <qvaluestack.h>
 #include <qmessagebox.h>
+#include <qpixmap.h>
 
 #include <X11/Xlib.h>
@@ -120,4 +121,5 @@ private:
     QString     mMethod;
     GreeterPluginHandle greetPlugin;
+    QPixmap     mSavedScreen;
 };
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic