-rw-r--r-- | core/launcher/desktop.cpp | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/core/launcher/desktop.cpp b/core/launcher/desktop.cpp index 7662e48..24dce73 100644 --- a/core/launcher/desktop.cpp +++ b/core/launcher/desktop.cpp @@ -194,12 +194,18 @@ bool DesktopApplication::qwsEventFilter( QWSEvent *e ) return TRUE; bool press = ke->simpleData.is_press; bool autoRepeat= ke->simpleData.is_auto_repeat; - if (!keyRegisterList.isEmpty()) - { + + /* + app that registers key/message to be sent back to the app, when it doesn't have focus, + when user presses key, unless keyboard has been requested from app. + will not send multiple repeats if user holds key + i.e. one shot + + */ + if (!keyRegisterList.isEmpty()) { KeyRegisterList::Iterator it; - for( it = keyRegisterList.begin(); it != keyRegisterList.end(); ++it ) - { - if ((*it).getKeyCode() == ke->simpleData.keycode && !autoRepeat) { + for( it = keyRegisterList.begin(); it != keyRegisterList.end(); ++it ) { + if ((*it).getKeyCode() == ke->simpleData.keycode && !autoRepeat && !keyboardGrabbed()) { if(press) qDebug("press"); else qDebug("release"); QCopEnvelope((*it).getChannel().utf8(), (*it).getMessage().utf8()); } |