-rw-r--r-- | qt/qte234-for-opie091-simpad.patch | 69 |
1 files changed, 58 insertions, 11 deletions
diff --git a/qt/qte234-for-opie091-simpad.patch b/qt/qte234-for-opie091-simpad.patch index fd535d4..93f4be3 100644 --- a/qt/qte234-for-opie091-simpad.patch +++ b/qt/qte234-for-opie091-simpad.patch @@ -27,4 +27,4 @@ --- src/kernel/qkeyboard_qws.cpp.orig Sat May 24 16:49:38 2003 -+++ src/kernel/qkeyboard_qws.cpp Sat May 24 17:58:22 2003 -@@ -131,6 +131,46 @@ ++++ src/kernel/qkeyboard_qws.cpp Mon May 26 19:52:05 2003 +@@ -131,6 +131,53 @@ @@ -65,2 +65,3 @@ + void readSwitchesData(); ++ void autoRepeat(); + @@ -68,3 +69,9 @@ + switches_mask_t switches; ++ + int fd; ++ int repeatdelay; ++ int repeatperiod; ++ int k; ++ ++ QTimer* repeater; + QSocketNotifier *notifier; @@ -75,3 +82,12 @@ { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 00 -@@ -1440,7 +1480,11 @@ +@@ -396,7 +443,7 @@ + for the list of codes). + <li>\a modifiers is the set of modifier keys (see Qt::Modifier). + <li>\a isPress says whether this is a press or a release. +- <li>\a autoRepeat says whether this event was generated by an auto-repeat ++ <li>\a time says whether this event was generated by an auto-repeat + mechanism, or an actual key press. + </ul> + */ +@@ -1440,7 +1486,11 @@ } else { @@ -88,3 +104,3 @@ handler = new QWSyopyButtonsHandler(); -@@ -1469,6 +1513,72 @@ +@@ -1469,6 +1519,103 @@ return keyM; @@ -93,3 +109,3 @@ -#endif // QT_NO_QWS_KEYBOARD - ++ +/* @@ -98,6 +114,7 @@ + */ -+ -+ + + +QWSsimpadButtonsHandler::QWSsimpadButtonsHandler() -+ :QWSKeyboardHandler(), fd( -1 ) ++ :QWSKeyboardHandler(), fd( -1 ), ++ repeatdelay( 400 ), repeatperiod( 80 ) +{ @@ -113,4 +130,8 @@ + connect( notifier, SIGNAL( activated(int) ),this, SLOT( readSwitchesData() ) ); ++ ++ repeater = new QTimer(this); ++ connect(repeater, SIGNAL(timeout()), this, SLOT(autoRepeat())); ++ +} - ++ + @@ -137,3 +158,3 @@ + -+ qDebug( "SimpadButtonsHandler() - EVENT = %04xd | %04xd", ++ qDebug( "SimpadButtonsHandler() - SwitchEvent = %0x | %0x", + switches.events[0], switches.states[0] ); @@ -142,3 +163,3 @@ + int code = switches.events[0]; -+ int k = -1; ++ k = -1; + @@ -155,2 +176,19 @@ + ++ bool repeatable = ( k != SIMPAD_SWITCH_UPPER && k != SIMPAD_SWITCH_LOWER ); ++ ++ qDebug( "SimpadButtonsHandler() - Repeatable = %s", repeatable? "true":"false" ); ++ ++ if ( qt_screen->isTransformed() && k >= Qt::Key_Left && k <= Qt::Key_Down ) ++ { ++ qDebug( "SimpadButtonsHandler() - We are transformed! Correcting..." ); ++ int oldK = k; ++ k = xform_dirkey( k ); ++ qDebug( "SimpadButtonsHandler() - Old Key: %d - New Key %d", oldK, k ); ++ } ++ ++ if ( repeatable && press ) ++ repeater->start( repeatdelay, true ); ++ else ++ repeater->stop(); ++ + if ( k >= 0 ) @@ -161,2 +199,11 @@ + ++ ++void QWSsimpadButtonsHandler::autoRepeat() ++{ ++ processKeyEvent( 0, k, 0, false, true ); ++ processKeyEvent( 0, k, 0, true, true ); ++ repeater->start(repeatperiod); ++} ++ ++ +#endif // QT_NO_QWS_KEYBOARD |