aboutsummaryrefslogtreecommitdiffstats
path: root/x11/kdebase4-workspace/files/patch-post-3.5.3-screensavers
blob: 1182c861986cca30cd06cda4f252ac2408f565d5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
--- kdesktop/xautolock.cc   2006/05/18 13:18:28 542149
+++ kdesktop/xautolock.cc   2006/06/04 12:42:03 548008
@@ -192,6 +192,7 @@
 
     bool activate = false;
 
+    kdDebug() << now << " " << mTrigger << endl;
     if (now >= mTrigger)
     {
         resetTrigger();
@@ -202,6 +203,8 @@
     BOOL on;
     CARD16 state;
     DPMSInfo( qt_xdisplay(), &state, &on );
+
+    kdDebug() << "DPMSInfo " << state << " " << on << endl;
     // If DPMS is active, it makes XScreenSaverQueryInfo() report idle time
     // that is always smaller than DPMS timeout (X bug I guess). So if DPMS
     // saving is active, simply always activate our saving too, otherwise
@@ -217,9 +220,11 @@
 #ifdef HAVE_XSCREENSAVER
     static XScreenSaverInfo* mitInfo = 0;
     if (!mitInfo) mitInfo = XScreenSaverAllocInfo ();
-    XScreenSaverQueryInfo (qt_xdisplay(), DefaultRootWindow (qt_xdisplay()), mitInfo);
-    if (mitInfo->state == ScreenSaverDisabled)
-   activate = false;
+    if (XScreenSaverQueryInfo (qt_xdisplay(), DefaultRootWindow (qt_xdisplay()), mitInfo)) {
+        kdDebug() << "XScreenSaverQueryInfo " << mitInfo->state << " " << ScreenSaverDisabled << endl;
+        if (mitInfo->state == ScreenSaverDisabled)
+       activate = false;
+    }
 #endif
 
     if(mActive && activate)
--- kdesktop/lockeng.cc 2006/02/06 13:25:11 506297
+++ kdesktop/lockeng.cc 2006/06/04 12:42:03 548008
@@ -42,9 +42,6 @@
     XGetScreenSaver(qt_xdisplay(), &mXTimeout, &mXInterval,
                     &mXBlanking, &mXExposures);
 
-    // We'll handle blanking
-    XSetScreenSaver(qt_xdisplay(), 0, mXInterval, mXBlanking, mXExposures);
-
     mState = Waiting;
     mXAutoLock = 0;
     mEnabled = false;
@@ -158,6 +155,9 @@
         mXAutoLock->setDPMS(mDPMS);
    //mXAutoLock->changeCornerLockStatus( mLockCornerTopLeft, mLockCornerTopRight, mLockCornerBottomLeft, mLockCornerBottomRight);
 
+        // We'll handle blanking 
+        XSetScreenSaver(qt_xdisplay(), mTimeout + 10, mXInterval, mXBlanking, mXExposures);
+
         mXAutoLock->start();
 
         kdDebug(1204) << "Saver Engine started, timeout: " << mTimeout << endl;
@@ -170,6 +170,7 @@
        mXAutoLock = 0;
    }
 
+   XSetScreenSaver(qt_xdisplay(), 0, mXInterval, mXBlanking, mXExposures);
         kdDebug(1204) << "Saver Engine disabled" << endl;
     }
 
@@ -291,7 +292,6 @@
     kdDebug(1204) << "SaverEngine: stopping lock" << endl;
     emitDCOPSignal("KDE_stop_screensaver()", QByteArray());
 
-
     mLockProcess.kill();
 
     if (mXAutoLock)
@@ -300,6 +300,7 @@
     }
     processLockTransactions();
     mState = Waiting;
+    XSetScreenSaver(qt_xdisplay(), mTimeout + 10, mXInterval, mXBlanking, mXExposures);
 }
 
 void SaverEngine::lockProcessExited()
@@ -314,6 +315,7 @@
     }
     processLockTransactions();
     mState = Waiting;
+    XSetScreenSaver(qt_xdisplay(), mTimeout + 10, mXInterval, mXBlanking, mXExposures);
 }
 
 //---------------------------------------------------------------------------
@@ -322,6 +324,8 @@
 //
 void SaverEngine::idleTimeout()
 {
+    // disable X screensaver
+    XSetScreenSaver(qt_xdisplay(), 0, mXInterval, mXBlanking, mXExposures);
     startLockProcess( DefaultLock );
 }