Act on KeyPress, not KeyRelease, the release may come
from the activating shortcut. svn path=/trunk/KDE/kdebase/workspace/; revision=746327
This commit is contained in:
parent
864dea425e
commit
0b2a40e150
2 changed files with 23 additions and 43 deletions
|
@ -557,6 +557,22 @@ void DesktopGridEffect::grabbedKeyboardEvent( QKeyEvent* e )
|
||||||
{
|
{
|
||||||
if( e->type() == QEvent::KeyPress )
|
if( e->type() == QEvent::KeyPress )
|
||||||
{
|
{
|
||||||
|
int desktop = -1;
|
||||||
|
// switch by F<number> or just <number>
|
||||||
|
if( e->key() >= Qt::Key_F1 && e->key() <= Qt::Key_F35 )
|
||||||
|
desktop = e->key() - Qt::Key_F1 + 1;
|
||||||
|
else if( e->key() >= Qt::Key_0 && e->key() <= Qt::Key_9 )
|
||||||
|
desktop = e->key() == Qt::Key_0 ? 10 : e->key() - Qt::Key_0;
|
||||||
|
if( desktop != -1 )
|
||||||
|
{
|
||||||
|
if( desktop <= effects->numberOfDesktops())
|
||||||
|
{
|
||||||
|
setHighlightedDesktop( desktop );
|
||||||
|
effects->setCurrentDesktop( desktop );
|
||||||
|
setActive( false );
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
switch( e->key())
|
switch( e->key())
|
||||||
{ // wrap only on autorepeat
|
{ // wrap only on autorepeat
|
||||||
case Qt::Key_Left:
|
case Qt::Key_Left:
|
||||||
|
@ -575,30 +591,6 @@ void DesktopGridEffect::grabbedKeyboardEvent( QKeyEvent* e )
|
||||||
setHighlightedDesktop( effects->desktopDown( highlighted_desktop,
|
setHighlightedDesktop( effects->desktopDown( highlighted_desktop,
|
||||||
!e->isAutoRepeat()));
|
!e->isAutoRepeat()));
|
||||||
break;
|
break;
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if( e->type() == QEvent::KeyRelease )
|
|
||||||
{
|
|
||||||
int desktop = -1;
|
|
||||||
// switch by F<number> or just <number>
|
|
||||||
if( e->key() >= Qt::Key_F1 && e->key() <= Qt::Key_F35 )
|
|
||||||
desktop = e->key() - Qt::Key_F1 + 1;
|
|
||||||
else if( e->key() >= Qt::Key_0 && e->key() <= Qt::Key_9 )
|
|
||||||
desktop = e->key() == Qt::Key_0 ? 10 : e->key() - Qt::Key_0;
|
|
||||||
if( desktop != -1 )
|
|
||||||
{
|
|
||||||
if( desktop <= effects->numberOfDesktops())
|
|
||||||
{
|
|
||||||
setHighlightedDesktop( desktop );
|
|
||||||
effects->setCurrentDesktop( desktop );
|
|
||||||
setActive( false );
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
switch( e->key())
|
|
||||||
{
|
|
||||||
case Qt::Key_Escape:
|
case Qt::Key_Escape:
|
||||||
setActive( false );
|
setActive( false );
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -812,25 +812,6 @@ void PresentWindowsEffect::grabbedKeyboardEvent( QKeyEvent* e )
|
||||||
rearrangeWindows();
|
rearrangeWindows();
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
case Qt::Key_Escape:
|
|
||||||
case Qt::Key_Return:
|
|
||||||
case Qt::Key_Enter:
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
if( !e->text().isEmpty())
|
|
||||||
{
|
|
||||||
windowFilter.append( e->text());
|
|
||||||
updateFilterTexture();
|
|
||||||
rearrangeWindows();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if( e->type() == QEvent::KeyRelease )
|
|
||||||
{
|
|
||||||
switch( e->key())
|
|
||||||
{
|
|
||||||
case Qt::Key_Escape:
|
case Qt::Key_Escape:
|
||||||
setActive( false );
|
setActive( false );
|
||||||
return;
|
return;
|
||||||
|
@ -849,6 +830,13 @@ void PresentWindowsEffect::grabbedKeyboardEvent( QKeyEvent* e )
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
default:
|
default:
|
||||||
|
if( !e->text().isEmpty())
|
||||||
|
{
|
||||||
|
windowFilter.append( e->text());
|
||||||
|
updateFilterTexture();
|
||||||
|
rearrangeWindows();
|
||||||
|
return;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue