|
|
|
@ -220,6 +220,7 @@ LockProcess::LockProcess()
|
|
|
|
|
mHackDelayStartupTimer(NULL),
|
|
|
|
|
mHackDelayStartupTimeout(0),
|
|
|
|
|
mHackStartupEnabled(true),
|
|
|
|
|
mOverrideHackStartupEnabled(false),
|
|
|
|
|
mResizingDesktopLock(false),
|
|
|
|
|
m_rootPixmap(NULL),
|
|
|
|
|
mBackingStartupDelayTimer(0),
|
|
|
|
@ -683,6 +684,7 @@ void LockProcess::slotDeadTimePassed()
|
|
|
|
|
bool LockProcess::defaultSave()
|
|
|
|
|
{
|
|
|
|
|
mLocked = false;
|
|
|
|
|
mOverrideHackStartupEnabled = true;
|
|
|
|
|
if (startSaver()) {
|
|
|
|
|
if (mLockGrace >= 0)
|
|
|
|
|
TQTimer::singleShot(mLockGrace, this, TQT_SLOT(startLock()));
|
|
|
|
@ -859,16 +861,19 @@ void LockProcess::configure()
|
|
|
|
|
if (mSaver.isEmpty() || mUseBlankOnly) {
|
|
|
|
|
mSaver = "KBlankscreen.desktop";
|
|
|
|
|
}
|
|
|
|
|
if (KDesktopSettings::screenSaverEnabled() == false) {
|
|
|
|
|
mSaver = "";
|
|
|
|
|
mSaverExec = "";
|
|
|
|
|
if (!trinity_desktop_lock_use_system_modal_dialogs) {
|
|
|
|
|
if (KDesktopSettings::screenSaverEnabled() == false) {
|
|
|
|
|
mSaver = "";
|
|
|
|
|
mSaverExec = "";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
readSaver();
|
|
|
|
|
|
|
|
|
|
mPlugins = KDesktopSettings::pluginsUnlock();
|
|
|
|
|
if (mPlugins.isEmpty())
|
|
|
|
|
if (mPlugins.isEmpty()) {
|
|
|
|
|
mPlugins = TQStringList("classic");
|
|
|
|
|
}
|
|
|
|
|
mPluginOptions = KDesktopSettings::pluginOptions();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1110,7 +1115,7 @@ void LockProcess::desktopResized()
|
|
|
|
|
|
|
|
|
|
// Black out the background widget to hide ugly resize tiling artifacts
|
|
|
|
|
if (argb_visual) {
|
|
|
|
|
setErasePixmap(TQPixmap());
|
|
|
|
|
setTransparentBackgroundARGB();
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
setBackgroundColor(black);
|
|
|
|
@ -1362,17 +1367,10 @@ void LockProcess::ungrabInput()
|
|
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
|
//
|
|
|
|
|
// Start the screen saver.
|
|
|
|
|
// Set a fully transparent ARGB background image.
|
|
|
|
|
//
|
|
|
|
|
bool LockProcess::startSaver()
|
|
|
|
|
void LockProcess::setTransparentBackgroundARGB()
|
|
|
|
|
{
|
|
|
|
|
if (!child_saver && !grabInput())
|
|
|
|
|
{
|
|
|
|
|
kdWarning(1204) << "LockProcess::startSaver() grabInput() failed!!!!" << endl;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
mBusy = false;
|
|
|
|
|
|
|
|
|
|
// eliminate nasty flicker on first show
|
|
|
|
|
TQImage m_grayImage = TQImage( TQApplication::desktop()->width(), TQApplication::desktop()->height(), 32 );
|
|
|
|
|
m_grayImage = m_grayImage.convertDepth(32);
|
|
|
|
@ -1387,6 +1385,23 @@ bool LockProcess::startSaver()
|
|
|
|
|
p.drawImage( 0, 0, m_grayImage );
|
|
|
|
|
p.end();
|
|
|
|
|
setBackgroundPixmap( m_root );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
|
//
|
|
|
|
|
// Start the screen saver.
|
|
|
|
|
//
|
|
|
|
|
bool LockProcess::startSaver()
|
|
|
|
|
{
|
|
|
|
|
if (!child_saver && !grabInput())
|
|
|
|
|
{
|
|
|
|
|
kdWarning(1204) << "LockProcess::startSaver() grabInput() failed!!!!" << endl;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
mBusy = false;
|
|
|
|
|
|
|
|
|
|
// eliminate nasty flicker on first show
|
|
|
|
|
setTransparentBackgroundARGB();
|
|
|
|
|
|
|
|
|
|
saveVRoot();
|
|
|
|
|
|
|
|
|
@ -1408,9 +1423,9 @@ bool LockProcess::startSaver()
|
|
|
|
|
slotPaintBackground(rootWinSnapShot);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (((!(trinity_desktop_lock_delay_screensaver_start && trinity_desktop_lock_forced)) && (!trinity_desktop_lock_in_sec_dlg)) && mHackStartupEnabled) {
|
|
|
|
|
if (((!(trinity_desktop_lock_delay_screensaver_start && trinity_desktop_lock_forced)) && (!trinity_desktop_lock_in_sec_dlg)) && (mHackStartupEnabled || mOverrideHackStartupEnabled)) {
|
|
|
|
|
if (argb_visual) {
|
|
|
|
|
setErasePixmap(TQPixmap());
|
|
|
|
|
setTransparentBackgroundARGB();
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if (backingPixmap.isNull()) {
|
|
|
|
@ -1430,7 +1445,8 @@ bool LockProcess::startSaver()
|
|
|
|
|
if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, TRUE);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if (mHackStartupEnabled == true) {
|
|
|
|
|
if (mHackStartupEnabled || mOverrideHackStartupEnabled) {
|
|
|
|
|
mOverrideHackStartupEnabled = false;
|
|
|
|
|
startHack();
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
@ -1558,7 +1574,7 @@ void LockProcess::repaintRootWindowIfNeeded()
|
|
|
|
|
if (trinity_desktop_lock_use_system_modal_dialogs) {
|
|
|
|
|
if (!mHackProc.isRunning()) {
|
|
|
|
|
if (argb_visual) {
|
|
|
|
|
setErasePixmap(TQPixmap());
|
|
|
|
|
setTransparentBackgroundARGB();
|
|
|
|
|
erase();
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
@ -1591,7 +1607,7 @@ bool LockProcess::startHack()
|
|
|
|
|
{
|
|
|
|
|
// no resuming with dialog visible or when not visible
|
|
|
|
|
if (argb_visual) {
|
|
|
|
|
setErasePixmap(TQPixmap());
|
|
|
|
|
setTransparentBackgroundARGB();
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if (backingPixmap.isNull()) {
|
|
|
|
@ -1644,7 +1660,7 @@ bool LockProcess::startHack()
|
|
|
|
|
if (trinity_desktop_lock_use_system_modal_dialogs) {
|
|
|
|
|
// Make sure we have a nice clean display to start with!
|
|
|
|
|
if (argb_visual) {
|
|
|
|
|
setErasePixmap(TQPixmap());
|
|
|
|
|
setTransparentBackgroundARGB();
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if (backingPixmap.isNull()) {
|
|
|
|
@ -1684,7 +1700,7 @@ bool LockProcess::startHack()
|
|
|
|
|
TQApplication::syncX();
|
|
|
|
|
if (!trinity_desktop_lock_use_system_modal_dialogs) {
|
|
|
|
|
if (argb_visual) {
|
|
|
|
|
setErasePixmap(TQPixmap());
|
|
|
|
|
setTransparentBackgroundARGB();
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if (backingPixmap.isNull()) {
|
|
|
|
@ -1696,7 +1712,7 @@ bool LockProcess::startHack()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (argb_visual) {
|
|
|
|
|
setErasePixmap(TQPixmap());
|
|
|
|
|
setTransparentBackgroundARGB();
|
|
|
|
|
erase();
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
@ -1746,7 +1762,7 @@ void LockProcess::hackExited(TDEProcess *)
|
|
|
|
|
TQApplication::syncX();
|
|
|
|
|
if (!trinity_desktop_lock_use_system_modal_dialogs) {
|
|
|
|
|
if (argb_visual) {
|
|
|
|
|
setErasePixmap(TQPixmap());
|
|
|
|
|
setTransparentBackgroundARGB();
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if (backingPixmap.isNull()) {
|
|
|
|
@ -1758,7 +1774,7 @@ void LockProcess::hackExited(TDEProcess *)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (argb_visual) {
|
|
|
|
|
setErasePixmap(TQPixmap());
|
|
|
|
|
setTransparentBackgroundARGB();
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if (backingPixmap.isNull()) {
|
|
|
|
@ -1846,7 +1862,7 @@ void LockProcess::resume( bool force )
|
|
|
|
|
// no resuming with dialog visible or when not visible
|
|
|
|
|
if (trinity_desktop_lock_use_system_modal_dialogs) {
|
|
|
|
|
if (argb_visual) {
|
|
|
|
|
setErasePixmap(TQPixmap());
|
|
|
|
|
setTransparentBackgroundARGB();
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if (backingPixmap.isNull()) {
|
|
|
|
|