summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--core/launcher/desktop.cpp16
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
@@ -185,30 +185,36 @@ enum MemState { Unknown, VeryLow, Low, Normal } memstate=Unknown;
#ifdef Q_WS_QWS
bool DesktopApplication::qwsEventFilter( QWSEvent *e )
{
qpedesktop->checkMemory();
if ( e->type == QWSEvent::Key ) {
QWSKeyEvent *ke = (QWSKeyEvent *)e;
if ( !loggedin && ke->simpleData.keycode != Key_F34 )
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());
}
}
}
if ( !keyboardGrabbed() ) {
if ( ke->simpleData.keycode == Key_F9 ) {
if ( press ) emit datebook();
return TRUE;
}
if ( ke->simpleData.keycode == Key_F10 ) {