diff options
Diffstat (limited to 'redhat/kdebase/kdebase-3.5.13-allow_minimal_window_interaction_inside_lock_process.patch')
-rw-r--r-- | redhat/kdebase/kdebase-3.5.13-allow_minimal_window_interaction_inside_lock_process.patch | 372 |
1 files changed, 0 insertions, 372 deletions
diff --git a/redhat/kdebase/kdebase-3.5.13-allow_minimal_window_interaction_inside_lock_process.patch b/redhat/kdebase/kdebase-3.5.13-allow_minimal_window_interaction_inside_lock_process.patch deleted file mode 100644 index 1c022587d..000000000 --- a/redhat/kdebase/kdebase-3.5.13-allow_minimal_window_interaction_inside_lock_process.patch +++ /dev/null @@ -1,372 +0,0 @@ -commit 057932620ba8355a6506b9d437518e253ba14ed9 -Author: Timothy Pearson <kb9vqf@pearsoncomputing.net> -Date: 1327619240 -0600 - - Clean up lock screen internals - This cleanup is part of an effort to resolve Bug 810, but a new Qt3 version is required to fully resolve it - -diff --git a/kdesktop/lock/autologout.cc b/kdesktop/lock/autologout.cc -index 22b449c..bef39dd 100644 ---- a/kdesktop/lock/autologout.cc -+++ b/kdesktop/lock/autologout.cc -@@ -82,6 +82,8 @@ AutoLogout::AutoLogout(LockProcess *parent) : TQDialog(parent, "password dialog" - mCountdownTimerId = startTimer(1000/25); - - connect(tqApp, TQT_SIGNAL(activity()), TQT_SLOT(slotActivity())); -+ -+ setFixedSize( sizeHint() ); - } - - AutoLogout::~AutoLogout() -diff --git a/kdesktop/lock/infodlg.cc b/kdesktop/lock/infodlg.cc -index f5f35b9..3fbc276 100644 ---- a/kdesktop/lock/infodlg.cc -+++ b/kdesktop/lock/infodlg.cc -@@ -99,6 +99,7 @@ InfoDlg::InfoDlg(LockProcess *parent) - frameLayout->addLayout( layStatus, 1, 1 ); - - installEventFilter(this); -+ setFixedSize( sizeHint() ); - } - - InfoDlg::~InfoDlg() -diff --git a/kdesktop/lock/lockdlg.cc b/kdesktop/lock/lockdlg.cc -index 0863a22..f3eeee0 100644 ---- a/kdesktop/lock/lockdlg.cc -+++ b/kdesktop/lock/lockdlg.cc -@@ -215,6 +215,7 @@ void PasswordDlg::init(GreeterPluginHandle *plugin) - mNewSessButton->hide(); - - installEventFilter(this); -+ setFixedSize( sizeHint() ); - - mFailedTimerId = 0; - mTimeoutTimerId = startTimer(PASSDLG_HIDE_TIMEOUT); -@@ -598,6 +599,7 @@ void PasswordDlg::show() - { - TQDialog::show(); - TQApplication::flushX(); -+ setFixedSize( sizeHint() ); - } - - void PasswordDlg::slotStartNewSession() -@@ -818,6 +820,8 @@ void PasswordDlg::slotSwitchUser() - connect( btn, TQT_SIGNAL(clicked()), &dialog, TQT_SLOT(reject()) ); - vbox2->addWidget( btn ); - -+ dialog.setFixedSize( dialog.sizeHint() ); -+ - int ret = static_cast< LockProcess* >(parent())->execDialog( &dialog ); - if (ret != TQDialog::Rejected) { - TQDialog::reject(); -diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc -index 5acc96e..9648bbc 100644 ---- a/kdesktop/lock/lockprocess.cc -+++ b/kdesktop/lock/lockprocess.cc -@@ -4,7 +4,7 @@ - // - // Copyright (c) 1999 Martin R. Jones <mjones@kde.org> - // Copyright (c) 2003 Oswald Buddenhagen <ossi@kde.org> --// Copyright (c) 2010-2011 Timothy Pearson <kb9vqf@pearsoncomputing.net> -+// Copyright (c) 2010-2012 Timothy Pearson <kb9vqf@pearsoncomputing.net> - // - - //kdesktop keeps running and checks user inactivity -@@ -111,6 +111,10 @@ Status DPMSInfo ( Display *, CARD16 *, BOOL * ); - #define LOCK_GRACE_DEFAULT 5000 - #define AUTOLOGOUT_DEFAULT 600 - -+// FIXME -+// This should be defined if Qt 3.4.0 or higher is in use -+// #define KEEP_MOUSE_UNGRABBED 1 -+ - // These lines are taken on 10/2009 from X.org (X11/XF86keysym.h), defining some special multimedia keys - #define XF86XK_AudioMute 0x1008FF12 - #define XF86XK_AudioRaiseVolume 0x1008FF13 -@@ -183,6 +187,10 @@ LockProcess::LockProcess(bool child, bool useBlankOnly) - mBackingStartupDelayTimer(0), - m_startupStatusDialog(NULL) - { -+#ifdef KEEP_MOUSE_UNGRABBED -+ setNFlags(WX11DisableMove|WX11DisableClose|WX11DisableShade|WX11DisableMinimize|WX11DisableMaximize); -+#endif -+ - setupSignals(); - setupPipe(); - -@@ -267,7 +275,11 @@ LockProcess::LockProcess(bool child, bool useBlankOnly) - #endif - - #if (QT_VERSION-0 >= 0x030200) // XRANDR support -- connect( kapp->desktop(), TQT_SIGNAL( resized( int )), TQT_SLOT( desktopResized())); -+ connect( kapp->desktop(), TQT_SIGNAL( resized( int )), TQT_SLOT( desktopResized())); -+#endif -+ -+#ifdef KEEP_MOUSE_UNGRABBED -+ setEnabled(false); - #endif - - greetPlugin.library = 0; -@@ -874,7 +886,6 @@ void LockProcess::createSaverWindow() - // this is a security risk and has been deactivated--welcome to the 21st century folks! - // setBackgroundMode(TQWidget::NoBackground); - -- setCursor( tqblankCursor ); - setGeometry(0, 0, mRootWidth, mRootHeight); - - kdDebug(1204) << "Saver window Id: " << winId() << endl; -@@ -884,7 +895,6 @@ void LockProcess::desktopResized() - { - mBusy = true; - suspend(); -- setCursor( tqblankCursor ); - - // Get root window size - XWindowAttributes rootAttr; -@@ -1087,6 +1097,7 @@ bool LockProcess::grabInput() - } - } - -+#ifndef KEEP_MOUSE_UNGRABBED - if (!grabMouse()) - { - usleep(100000); -@@ -1096,6 +1107,7 @@ bool LockProcess::grabInput() - return false; - } - } -+#endif - - lockXF86(); - -@@ -1150,7 +1162,6 @@ bool LockProcess::startSaver() - createSaverWindow(); - move(0, 0); - show(); -- setCursor( tqblankCursor ); - - raise(); - XSync(qt_xdisplay(), False); -@@ -1313,6 +1324,8 @@ void LockProcess::repaintRootWindowIfNeeded() - - bool LockProcess::startHack() - { -+ setCursor( tqblankCursor ); -+ - if ((mEnsureVRootWindowSecurityTimer) && (!mEnsureVRootWindowSecurityTimer->isActive())) mEnsureVRootWindowSecurityTimer->start(250, FALSE); - - if (currentDialog || (!mDialogs.isEmpty())) -@@ -1429,6 +1442,7 @@ void LockProcess::stopHack() - mHackProc.kill(SIGKILL); - } - } -+ setCursor( tqarrowCursor ); - } - - //--------------------------------------------------------------------------- -@@ -1730,7 +1744,6 @@ void LockProcess::doFunctionKeyBroadcast() { - mDialogControlLock = false; - } - } -- setCursor( tqblankCursor ); - - DCOPRef ref( "*", "MainApplication-Interface"); - ref.send("sendFakeKey", DCOPArg(mkeyCode , "unsigned int")); -diff --git a/kdesktop/lock/main.cc b/kdesktop/lock/main.cc -index c0b8e24..0cbef60 100644 ---- a/kdesktop/lock/main.cc -+++ b/kdesktop/lock/main.cc -@@ -45,8 +45,9 @@ bool trinity_desktop_lock_forced = FALSE; - - bool MyApp::x11EventFilter( XEvent *ev ) - { -- if (ev->type == XKeyPress || ev->type == ButtonPress) -+ if (ev->type == XKeyPress || ev->type == ButtonPress) { - emit activity(); -+ } - else if (ev->type == MotionNotify) { - time_t tick = time( 0 ); - if (tick != lastTick) { -diff --git a/kdesktop/lock/querydlg.cc b/kdesktop/lock/querydlg.cc -index e672d54..5f50cbe 100644 ---- a/kdesktop/lock/querydlg.cc -+++ b/kdesktop/lock/querydlg.cc -@@ -118,6 +118,7 @@ QueryDlg::QueryDlg(LockProcess *parent) - connect(ok, TQT_SIGNAL(clicked()), TQT_SLOT(slotOK())); - - installEventFilter(this); -+ setFixedSize( sizeHint() ); - } - - QueryDlg::~QueryDlg() -diff --git a/kdesktop/lock/sakdlg.cc b/kdesktop/lock/sakdlg.cc -index 17f54a1..d96e0af 100644 ---- a/kdesktop/lock/sakdlg.cc -+++ b/kdesktop/lock/sakdlg.cc -@@ -102,6 +102,7 @@ SAKDlg::SAKDlg(LockProcess *parent) - mStatusLabel->setText("<b>" + i18n("Press Ctrl+Alt+Del to begin.") + "</b><p>" + i18n("This process helps keep your password secure.") + "<br>" + i18n("It prevents unauthorized users from emulating the login screen.")); - - installEventFilter(this); -+ setFixedSize( sizeHint() ); - - mSAKProcess = new KProcess; - *mSAKProcess << "kdmtsak"; -diff --git a/kdesktop/lock/securedlg.cc b/kdesktop/lock/securedlg.cc -index 532b904..37524f7 100644 ---- a/kdesktop/lock/securedlg.cc -+++ b/kdesktop/lock/securedlg.cc -@@ -144,6 +144,7 @@ SecureDlg::SecureDlg(LockProcess *parent) - mSwitchButton->setFixedWidth(btnSize); - - installEventFilter(this); -+ setFixedSize( sizeHint() ); - } - - SecureDlg::~SecureDlg() -commit 678bea5ba74b3b39981e482e188c61fdd37786f0 -Author: Timothy Pearson <kb9vqf@pearsoncomputing.net> -Date: 1328606373 -0600 - - Allow minimal managed window interaction inside the lock process - This closes Bug 810 - -diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc -index 9648bbc..2e9c9d3 100644 ---- a/kdesktop/lock/lockprocess.cc -+++ b/kdesktop/lock/lockprocess.cc -@@ -111,8 +111,8 @@ Status DPMSInfo ( Display *, CARD16 *, BOOL * ); - #define LOCK_GRACE_DEFAULT 5000 - #define AUTOLOGOUT_DEFAULT 600 - --// FIXME --// This should be defined if Qt 3.4.0 or higher is in use -+// Setting this define is INSECURE -+// Use it for debugging purposes ONLY - // #define KEEP_MOUSE_UNGRABBED 1 - - // These lines are taken on 10/2009 from X.org (X11/XF86keysym.h), defining some special multimedia keys -@@ -185,7 +185,12 @@ LockProcess::LockProcess(bool child, bool useBlankOnly) - mHackStartupEnabled(true), - m_rootPixmap(NULL), - mBackingStartupDelayTimer(0), -- m_startupStatusDialog(NULL) -+ m_startupStatusDialog(NULL), -+ m_mouseDown(0), -+ m_mousePrevX(0), -+ m_mousePrevY(0), -+ m_dialogPrevX(0), -+ m_dialogPrevY(0) - { - #ifdef KEEP_MOUSE_UNGRABBED - setNFlags(WX11DisableMove|WX11DisableClose|WX11DisableShade|WX11DisableMinimize|WX11DisableMaximize); -@@ -208,6 +213,8 @@ LockProcess::LockProcess(bool child, bool useBlankOnly) - mEnsureVRootWindowSecurityTimer = new TQTimer( this ); - connect( mEnsureVRootWindowSecurityTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(repaintRootWindowIfNeeded()) ); - -+ connect(tqApp, TQT_SIGNAL(mouseInteraction(XEvent *)), TQT_SLOT(slotMouseActivity(XEvent *))); -+ - mHackDelayStartupTimeout = trinity_desktop_lock_delay_screensaver_start?KDesktopSettings::timeout()*1000:10*1000; - mHackStartupEnabled = trinity_desktop_lock_delay_screensaver_start?KDesktopSettings::screenSaverEnabled():true; - -@@ -2200,4 +2207,64 @@ void LockProcess::sendVkbdFocusInOut( WId window, Time t ) - } - } - -+void LockProcess::slotMouseActivity(XEvent *event) -+{ -+ bool inFrame = 0; -+ bool inDialog = 0; -+ XButtonEvent *be = (XButtonEvent *) event; -+ XMotionEvent *me = (XMotionEvent *) event; -+ if (event->type == ButtonPress) { -+ // Get geometry including window frame/titlebar -+ TQRect fgeom = mDialogs.first()->frameGeometry(); -+ TQRect wgeom = mDialogs.first()->geometry(); -+ -+ if (((be->x_root > fgeom.x()) && (be->y_root > fgeom.y())) && ((be->x_root < (fgeom.x()+fgeom.width())) && (be->y_root < (fgeom.y()+fgeom.height())))) { -+ inFrame = 1; -+ } -+ if (((be->x_root > wgeom.x()) && (be->y_root > wgeom.y())) && ((be->x_root < (wgeom.x()+wgeom.width())) && (be->y_root < (wgeom.y()+wgeom.height())))) { -+ inDialog = 1; -+ } -+ -+ // Clicked inside dialog; set focus -+ if (inFrame == TRUE) { -+ WId window = mDialogs.first()->winId(); -+ XSetInputFocus(qt_xdisplay(), window, RevertToParent, CurrentTime); -+ fakeFocusIn(window); -+ // Why this needs to be repeated I have no idea... -+ XSetInputFocus(qt_xdisplay(), window, RevertToParent, CurrentTime); -+ fakeFocusIn(window); -+ } -+ -+ // Clicked inside window handle (or border); drag window -+ if ((inFrame == TRUE) && (inDialog == FALSE)) { -+ TQPoint oldPoint = mDialogs.first()->pos(); -+ m_mouseDown = 1; -+ m_dialogPrevX = oldPoint.x(); -+ m_dialogPrevY = oldPoint.y(); -+ m_mousePrevX = be->x_root; -+ m_mousePrevY = be->y_root; -+ XChangeActivePointerGrab( qt_xdisplay(), GRABEVENTS, TQCursor(tqsizeAllCursor).handle(), CurrentTime); -+ } -+ } -+ -+ // Drag the window... -+ if (event->type == MotionNotify) { -+ if (m_mouseDown == TRUE) { -+ int deltaX = me->x_root - m_mousePrevX; -+ int deltaY = me->y_root - m_mousePrevY; -+ m_dialogPrevX = m_dialogPrevX + deltaX; -+ m_dialogPrevY = m_dialogPrevY + deltaY; -+ mDialogs.first()->move(m_dialogPrevX, m_dialogPrevY); -+ -+ m_mousePrevX = me->x_root; -+ m_mousePrevY = me->y_root; -+ } -+ } -+ -+ if (event->type == ButtonRelease) { -+ m_mouseDown = 0; -+ XChangeActivePointerGrab( qt_xdisplay(), GRABEVENTS, TQCursor(tqarrowCursor).handle(), CurrentTime); -+ } -+} -+ - #include "lockprocess.moc" -diff --git a/kdesktop/lock/lockprocess.h b/kdesktop/lock/lockprocess.h -index 3a7e3db..18320a8 100644 ---- a/kdesktop/lock/lockprocess.h -+++ b/kdesktop/lock/lockprocess.h -@@ -94,6 +94,7 @@ private slots: - bool closeCurrentWindow(); - void repaintRootWindowIfNeeded(); - void startSecureDialog(); -+ void slotMouseActivity(XEvent *event); - - private: - void configure(); -@@ -197,6 +198,12 @@ private: - KSMModalDialog* m_startupStatusDialog; - - TQDateTime mlockDateTime; -+ -+ bool m_mouseDown; -+ int m_mousePrevX; -+ int m_mousePrevY; -+ int m_dialogPrevX; -+ int m_dialogPrevY; - }; - - #endif -diff --git a/kdesktop/lock/main.h b/kdesktop/lock/main.h -index c8e0e05..23797e4 100644 ---- a/kdesktop/lock/main.h -+++ b/kdesktop/lock/main.h -@@ -32,6 +32,7 @@ protected: - bool x11EventFilter( XEvent * ); - signals: - void activity(); -+ void mouseInteraction(XEvent *event); - private: - time_t lastTick; - }; |