aboutsummaryrefslogtreecommitdiffstats
path: root/x11
diff options
context:
space:
mode:
authorlofi <lofi@FreeBSD.org>2006-07-06 07:22:17 +0800
committerlofi <lofi@FreeBSD.org>2006-07-06 07:22:17 +0800
commita7a8a298d104b186d4c831ce25da2abc1e1ed23a (patch)
tree02990b98fdecf4f704815133abdfc631a19aa88a /x11
parent58c8d113c42aac8d0e1f667145748413d74b1c67 (diff)
downloadfreebsd-ports-gnome-a7a8a298d104b186d4c831ce25da2abc1e1ed23a.tar.gz
freebsd-ports-gnome-a7a8a298d104b186d4c831ce25da2abc1e1ed23a.tar.zst
freebsd-ports-gnome-a7a8a298d104b186d4c831ce25da2abc1e1ed23a.zip
Fix KDE Bug 128610 (kscreensaver does not launch screensaver after x minutes).
Diffstat (limited to 'x11')
-rw-r--r--x11/kde4-baseapps/Makefile2
-rw-r--r--x11/kde4-baseapps/files/patch-post-3.5.3-screensavers97
-rw-r--r--x11/kde4-runtime/Makefile2
-rw-r--r--x11/kde4-runtime/files/patch-post-3.5.3-screensavers97
-rw-r--r--x11/kde4-workspace/Makefile2
-rw-r--r--x11/kde4-workspace/files/patch-post-3.5.3-screensavers97
-rw-r--r--x11/kdebase3/Makefile2
-rw-r--r--x11/kdebase3/files/patch-post-3.5.3-screensavers97
-rw-r--r--x11/kdebase4-runtime/Makefile2
-rw-r--r--x11/kdebase4-runtime/files/patch-post-3.5.3-screensavers97
-rw-r--r--x11/kdebase4-workspace/Makefile2
-rw-r--r--x11/kdebase4-workspace/files/patch-post-3.5.3-screensavers97
-rw-r--r--x11/kdebase4/Makefile2
-rw-r--r--x11/kdebase4/files/patch-post-3.5.3-screensavers97
14 files changed, 686 insertions, 7 deletions
diff --git a/x11/kde4-baseapps/Makefile b/x11/kde4-baseapps/Makefile
index 5b2275ad48eb..365e19c65795 100644
--- a/x11/kde4-baseapps/Makefile
+++ b/x11/kde4-baseapps/Makefile
@@ -8,7 +8,7 @@
PORTNAME= kdebase
PORTVERSION= ${KDE_VERSION}
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= x11 kde
MASTER_SITES= ${MASTER_SITE_KDE}
MASTER_SITE_SUBDIR= stable/${PORTVERSION:S/.0//}/src
diff --git a/x11/kde4-baseapps/files/patch-post-3.5.3-screensavers b/x11/kde4-baseapps/files/patch-post-3.5.3-screensavers
new file mode 100644
index 000000000000..1182c861986c
--- /dev/null
+++ b/x11/kde4-baseapps/files/patch-post-3.5.3-screensavers
@@ -0,0 +1,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 );
+ }
+
diff --git a/x11/kde4-runtime/Makefile b/x11/kde4-runtime/Makefile
index 5b2275ad48eb..365e19c65795 100644
--- a/x11/kde4-runtime/Makefile
+++ b/x11/kde4-runtime/Makefile
@@ -8,7 +8,7 @@
PORTNAME= kdebase
PORTVERSION= ${KDE_VERSION}
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= x11 kde
MASTER_SITES= ${MASTER_SITE_KDE}
MASTER_SITE_SUBDIR= stable/${PORTVERSION:S/.0//}/src
diff --git a/x11/kde4-runtime/files/patch-post-3.5.3-screensavers b/x11/kde4-runtime/files/patch-post-3.5.3-screensavers
new file mode 100644
index 000000000000..1182c861986c
--- /dev/null
+++ b/x11/kde4-runtime/files/patch-post-3.5.3-screensavers
@@ -0,0 +1,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 );
+ }
+
diff --git a/x11/kde4-workspace/Makefile b/x11/kde4-workspace/Makefile
index 5b2275ad48eb..365e19c65795 100644
--- a/x11/kde4-workspace/Makefile
+++ b/x11/kde4-workspace/Makefile
@@ -8,7 +8,7 @@
PORTNAME= kdebase
PORTVERSION= ${KDE_VERSION}
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= x11 kde
MASTER_SITES= ${MASTER_SITE_KDE}
MASTER_SITE_SUBDIR= stable/${PORTVERSION:S/.0//}/src
diff --git a/x11/kde4-workspace/files/patch-post-3.5.3-screensavers b/x11/kde4-workspace/files/patch-post-3.5.3-screensavers
new file mode 100644
index 000000000000..1182c861986c
--- /dev/null
+++ b/x11/kde4-workspace/files/patch-post-3.5.3-screensavers
@@ -0,0 +1,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 );
+ }
+
diff --git a/x11/kdebase3/Makefile b/x11/kdebase3/Makefile
index 5b2275ad48eb..365e19c65795 100644
--- a/x11/kdebase3/Makefile
+++ b/x11/kdebase3/Makefile
@@ -8,7 +8,7 @@
PORTNAME= kdebase
PORTVERSION= ${KDE_VERSION}
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= x11 kde
MASTER_SITES= ${MASTER_SITE_KDE}
MASTER_SITE_SUBDIR= stable/${PORTVERSION:S/.0//}/src
diff --git a/x11/kdebase3/files/patch-post-3.5.3-screensavers b/x11/kdebase3/files/patch-post-3.5.3-screensavers
new file mode 100644
index 000000000000..1182c861986c
--- /dev/null
+++ b/x11/kdebase3/files/patch-post-3.5.3-screensavers
@@ -0,0 +1,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 );
+ }
+
diff --git a/x11/kdebase4-runtime/Makefile b/x11/kdebase4-runtime/Makefile
index 5b2275ad48eb..365e19c65795 100644
--- a/x11/kdebase4-runtime/Makefile
+++ b/x11/kdebase4-runtime/Makefile
@@ -8,7 +8,7 @@
PORTNAME= kdebase
PORTVERSION= ${KDE_VERSION}
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= x11 kde
MASTER_SITES= ${MASTER_SITE_KDE}
MASTER_SITE_SUBDIR= stable/${PORTVERSION:S/.0//}/src
diff --git a/x11/kdebase4-runtime/files/patch-post-3.5.3-screensavers b/x11/kdebase4-runtime/files/patch-post-3.5.3-screensavers
new file mode 100644
index 000000000000..1182c861986c
--- /dev/null
+++ b/x11/kdebase4-runtime/files/patch-post-3.5.3-screensavers
@@ -0,0 +1,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 );
+ }
+
diff --git a/x11/kdebase4-workspace/Makefile b/x11/kdebase4-workspace/Makefile
index 5b2275ad48eb..365e19c65795 100644
--- a/x11/kdebase4-workspace/Makefile
+++ b/x11/kdebase4-workspace/Makefile
@@ -8,7 +8,7 @@
PORTNAME= kdebase
PORTVERSION= ${KDE_VERSION}
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= x11 kde
MASTER_SITES= ${MASTER_SITE_KDE}
MASTER_SITE_SUBDIR= stable/${PORTVERSION:S/.0//}/src
diff --git a/x11/kdebase4-workspace/files/patch-post-3.5.3-screensavers b/x11/kdebase4-workspace/files/patch-post-3.5.3-screensavers
new file mode 100644
index 000000000000..1182c861986c
--- /dev/null
+++ b/x11/kdebase4-workspace/files/patch-post-3.5.3-screensavers
@@ -0,0 +1,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 );
+ }
+
diff --git a/x11/kdebase4/Makefile b/x11/kdebase4/Makefile
index 5b2275ad48eb..365e19c65795 100644
--- a/x11/kdebase4/Makefile
+++ b/x11/kdebase4/Makefile
@@ -8,7 +8,7 @@
PORTNAME= kdebase
PORTVERSION= ${KDE_VERSION}
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= x11 kde
MASTER_SITES= ${MASTER_SITE_KDE}
MASTER_SITE_SUBDIR= stable/${PORTVERSION:S/.0//}/src
diff --git a/x11/kdebase4/files/patch-post-3.5.3-screensavers b/x11/kdebase4/files/patch-post-3.5.3-screensavers
new file mode 100644
index 000000000000..1182c861986c
--- /dev/null
+++ b/x11/kdebase4/files/patch-post-3.5.3-screensavers
@@ -0,0 +1,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 );
+ }
+