summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/desktop.cpp58
1 files changed, 32 insertions, 26 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
@@ -196,10 +196,16 @@ bool DesktopApplication::qwsEventFilter( QWSEvent *e )
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) {
- if(press) qDebug("press"); else qDebug("release");
- QCopEnvelope((*it).getChannel().utf8(), (*it).getMessage().utf8());
+ 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());
}
@@ -752,4 +758,4 @@ void Desktop::keyClick()
{
- if ( keyclick )
- ODevice::inst ( )-> keySound ( );
+ if ( keyclick )
+ ODevice::inst ( )-> keySound ( );
}
@@ -758,4 +764,4 @@ void Desktop::screenClick()
{
- if ( touchclick )
- ODevice::inst ( )-> touchSound ( );
+ if ( touchclick )
+ ODevice::inst ( )-> touchSound ( );
}
@@ -764,4 +770,4 @@ void Desktop::soundAlarm()
{
- if ( qpedesktop-> alarmsound )
- ODevice::inst ( )-> alarmSound ( );
+ if ( qpedesktop-> alarmsound )
+ ODevice::inst ( )-> alarmSound ( );
}
@@ -770,15 +776,15 @@ bool Desktop::eventFilter( QObject *, QEvent *ev )
{
- if ( ev-> type ( ) == QEvent::KeyPress ) {
- QKeyEvent *ke = (QKeyEvent *) ev;
- if ( ke-> key ( ) == Qt::Key_F11 ) { // menu key
- QWidget *active = qApp-> activeWindow ( );
-
- if ( active && active-> isPopup ( ))
- active->close();
-
- raiseMenu ( );
- return true;
- }
- }
- return false;
+ if ( ev-> type ( ) == QEvent::KeyPress ) {
+ QKeyEvent *ke = (QKeyEvent *) ev;
+ if ( ke-> key ( ) == Qt::Key_F11 ) { // menu key
+ QWidget *active = qApp-> activeWindow ( );
+
+ if ( active && active-> isPopup ( ))
+ active->close();
+
+ raiseMenu ( );
+ return true;
+ }
+ }
+ return false;
}