diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2013-02-20 14:29:13 -0600 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2013-02-20 22:01:35 +0100 |
commit | 540d05041a9ffa3906536ea4c2f2a7b324afffdd (patch) | |
tree | cb274fc72c31c14d49254bb1a0768aced75bc9fc /kdesktop | |
parent | 11319be1b9ff8f6fea375d86a3430a0c85b184c7 (diff) | |
download | tdebase-540d05041a9ffa3906536ea4c2f2a7b324afffdd.tar.gz tdebase-540d05041a9ffa3906536ea4c2f2a7b324afffdd.zip |
Fix potential crash in kdesktop_lock
This is related to Bug 1288
(cherry picked from commit 7ca042263042aaa2f10aa0f436bf1df91e476c12)
Diffstat (limited to 'kdesktop')
-rw-r--r-- | kdesktop/lock/lockprocess.cc | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc index 397dec446..a7a46fdf7 100644 --- a/kdesktop/lock/lockprocess.cc +++ b/kdesktop/lock/lockprocess.cc @@ -1847,8 +1847,9 @@ bool LockProcess::checkPass() // Wait for SAK press before continuing... SAKDlg inDlg( this ); execDialog( &inDlg ); - if (trinity_desktop_lock_closing_windows) + if (trinity_desktop_lock_closing_windows) { return 0; + } } showVkbd(); @@ -2030,7 +2031,9 @@ void LockProcess::cleanupPopup() { TQWidget *dlg = (TQWidget *)sender(); mDialogs.remove( dlg ); - fakeFocusIn( mDialogs.first()->winId() ); + if ( mDialogs.isEmpty() ) { + fakeFocusIn( mDialogs.first()->winId() ); + } } void LockProcess::doFunctionKeyBroadcast() { @@ -2549,7 +2552,7 @@ void LockProcess::slotMouseActivity(XEvent *event) bool inDialog = 0; XButtonEvent *be = (XButtonEvent *) event; XMotionEvent *me = (XMotionEvent *) event; - if ((event->type == ButtonPress) && (mDialogs.first())) { + if ((event->type == ButtonPress) && (!mDialogs.isEmpty())) { // Get geometry including window frame/titlebar TQRect fgeom = mDialogs.first()->frameGeometry(); TQRect wgeom = mDialogs.first()->geometry(); @@ -2590,7 +2593,7 @@ void LockProcess::slotMouseActivity(XEvent *event) int deltaY = me->y_root - m_mousePrevY; m_dialogPrevX = m_dialogPrevX + deltaX; m_dialogPrevY = m_dialogPrevY + deltaY; - if (mDialogs.first()) mDialogs.first()->move(m_dialogPrevX, m_dialogPrevY); + if (!mDialogs.isEmpty()) mDialogs.first()->move(m_dialogPrevX, m_dialogPrevY); m_mousePrevX = me->x_root; m_mousePrevY = me->y_root; |