From 601086c81ec01df4345bd22732105d9d923aaa26 Mon Sep 17 00:00:00 2001 From: Lucas Murray Date: Mon, 14 Dec 2009 11:44:01 +0000 Subject: [PATCH] Disable the direction keys in present window when there is no highlighted window on the screen. Happens when no window matches the current filter. BUG: 212984 svn path=/trunk/KDE/kdebase/workspace/; revision=1062343 --- effects/presentwindows/presentwindows.cpp | 24 +++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/effects/presentwindows/presentwindows.cpp b/effects/presentwindows/presentwindows.cpp index cd1bd05c53..673f93ee3d 100644 --- a/effects/presentwindows/presentwindows.cpp +++ b/effects/presentwindows/presentwindows.cpp @@ -572,28 +572,36 @@ void PresentWindowsEffect::grabbedKeyboardEvent( QKeyEvent *e ) switch( e->key() ) { // Wrap only if not auto-repeating case Qt::Key_Left: - setHighlightedWindow( relativeWindow( m_highlightedWindow, -1, 0, !e->isAutoRepeat() )); + if( m_highlightedWindow ) + setHighlightedWindow( relativeWindow( m_highlightedWindow, -1, 0, !e->isAutoRepeat() )); break; case Qt::Key_Right: - setHighlightedWindow( relativeWindow( m_highlightedWindow, 1, 0, !e->isAutoRepeat() )); + if( m_highlightedWindow ) + setHighlightedWindow( relativeWindow( m_highlightedWindow, 1, 0, !e->isAutoRepeat() )); break; case Qt::Key_Up: - setHighlightedWindow( relativeWindow( m_highlightedWindow, 0, -1, !e->isAutoRepeat() )); + if( m_highlightedWindow ) + setHighlightedWindow( relativeWindow( m_highlightedWindow, 0, -1, !e->isAutoRepeat() )); break; case Qt::Key_Down: - setHighlightedWindow( relativeWindow( m_highlightedWindow, 0, 1, !e->isAutoRepeat() )); + if( m_highlightedWindow ) + setHighlightedWindow( relativeWindow( m_highlightedWindow, 0, 1, !e->isAutoRepeat() )); break; case Qt::Key_Home: - setHighlightedWindow( relativeWindow( m_highlightedWindow, -1000, 0, false )); + if( m_highlightedWindow ) + setHighlightedWindow( relativeWindow( m_highlightedWindow, -1000, 0, false )); break; case Qt::Key_End: - setHighlightedWindow( relativeWindow( m_highlightedWindow, 1000, 0, false )); + if( m_highlightedWindow ) + setHighlightedWindow( relativeWindow( m_highlightedWindow, 1000, 0, false )); break; case Qt::Key_PageUp: - setHighlightedWindow( relativeWindow( m_highlightedWindow, 0, -1000, false )); + if( m_highlightedWindow ) + setHighlightedWindow( relativeWindow( m_highlightedWindow, 0, -1000, false )); break; case Qt::Key_PageDown: - setHighlightedWindow( relativeWindow( m_highlightedWindow, 0, 1000, false )); + if( m_highlightedWindow ) + setHighlightedWindow( relativeWindow( m_highlightedWindow, 0, 1000, false )); break; case Qt::Key_Backspace: if( !m_windowFilter.isEmpty() )