summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2003-06-03 14:38:09 (UTC)
committer mickeyl <mickeyl>2003-06-03 14:38:09 (UTC)
commit4e0c9efab5f3c73a1843e96983c9cd1894e44810 (patch) (unidiff)
tree8d885b0a0c08047f7cfb194c7f3bc6539e927f2c
parentf80c2829f8660402df7a6d5667d6022f366cd44b (diff)
downloadopie-4e0c9efab5f3c73a1843e96983c9cd1894e44810.zip
opie-4e0c9efab5f3c73a1843e96983c9cd1894e44810.tar.gz
opie-4e0c9efab5f3c73a1843e96983c9cd1894e44810.tar.bz2
eliminate the non-tslib patch for the simpad.
simpad support now _needs_ tslib with Qt/Embedded.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--qt/qte234-for-opie091-simpad.patch26
1 files changed, 0 insertions, 26 deletions
diff --git a/qt/qte234-for-opie091-simpad.patch b/qt/qte234-for-opie091-simpad.patch
index e4af4f7..5b892d4 100644
--- a/qt/qte234-for-opie091-simpad.patch
+++ b/qt/qte234-for-opie091-simpad.patch
@@ -1,328 +1,302 @@
1--- src/kernel/qwsmouse_qws.cpp.orig 2003-01-31 04:34:52.000000000 +0100
2+++ src/kernel/qwsmouse_qws.cpp 2003-03-10 12:26:40.000000000 +0100
3@@ -61,12 +61,14 @@
4 #endif
5
6 #if defined(QT_QWS_IPAQ)
7+#include <sys/time.h>
8 #define QT_QWS_IPAQ_RAW
9 typedef struct {
10 unsigned short pressure;
11 unsigned short x;
12 unsigned short y;
13 unsigned short pad;
14+ struct timeval stamp;
15 } TS_EVENT;
16 #elif defined(QT_QWS_SL5XXX)
17 #define QT_QWS_SL5XXX_RAW
18@@ -1241,7 +1243,7 @@
19 #if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX)
20 #if defined(QT_QWS_IPAQ)
21 # ifdef QT_QWS_IPAQ_RAW
22- if ((mouseFD = open( "/dev/h3600_tsraw", O_RDONLY | O_NDELAY)) < 0) {
23+ if ((mouseFD = open( "/dev/touchscreen/ucb1x00", O_RDONLY | O_NONBLOCK /*O_NDELAY*/)) < 0) {
24 # else
25 if ((mouseFD = open( "/dev/h3600_ts", O_RDONLY | O_NDELAY)) < 0) {
26 # endif
27 --- src/kernel/qkeyboard_qws.cpp.origFri May 30 16:05:20 2003 1 --- src/kernel/qkeyboard_qws.cpp.origFri May 30 16:05:20 2003
28 +++ src/kernel/qkeyboard_qws.cppFri May 30 16:03:41 2003 2 +++ src/kernel/qkeyboard_qws.cppFri May 30 16:03:41 2003
29@@ -37,6 +37,7 @@ 3@@ -37,6 +37,7 @@
30 #include <qapplication.h> 4 #include <qapplication.h>
31 #include <qsocketnotifier.h> 5 #include <qsocketnotifier.h>
32 #include <qnamespace.h> 6 #include <qnamespace.h>
33+#include <qdatetime.h> 7+#include <qdatetime.h>
34 #include <qtimer.h> 8 #include <qtimer.h>
35 9
36 #include <stdlib.h> 10 #include <stdlib.h>
37@@ -131,6 +132,59 @@ 11@@ -131,6 +132,59 @@
38 12
39 #endif // QNX6 13 #endif // QNX6
40 14
41+/* 15+/*
42+ * SIMpad switches handler 16+ * SIMpad switches handler
43+ * (C) 2003 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> 17+ * (C) 2003 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
44+ */ 18+ */
45+ 19+
46+//TODO: guard this against inclusion with #ifdef QT_QWS_SIMPAD 20+//TODO: guard this against inclusion with #ifdef QT_QWS_SIMPAD
47+ 21+
48+#include <linux/switches.h> 22+#include <linux/switches.h>
49+#define SIMPAD_SWITCHES_DEVICE "/dev/misc/switches" 23+#define SIMPAD_SWITCHES_DEVICE "/dev/misc/switches"
50+ 24+
51+// switches from left top to right down over the SIMpad surface 25+// switches from left top to right down over the SIMpad surface
52+ 26+
53+#define SIMPAD_SWITCH_POWER 0x02 27+#define SIMPAD_SWITCH_POWER 0x02
54+#define SIMPAD_SWITCH_UPPER 0x10 28+#define SIMPAD_SWITCH_UPPER 0x10
55+#define SIMPAD_SWITCH_UP 0x20 29+#define SIMPAD_SWITCH_UP 0x20
56+#define SIMPAD_SWITCH_DOWN 0x40 30+#define SIMPAD_SWITCH_DOWN 0x40
57+#define SIMPAD_SWITCH_LEFT 0x80 31+#define SIMPAD_SWITCH_LEFT 0x80
58+#define SIMPAD_SWITCH_RIGHT 0x100 32+#define SIMPAD_SWITCH_RIGHT 0x100
59+#define SIMPAD_SWITCH_LOWER 0x8 33+#define SIMPAD_SWITCH_LOWER 0x8
60+ 34+
61+class QWSsimpadButtonsHandler : public QWSKeyboardHandler 35+class QWSsimpadButtonsHandler : public QWSKeyboardHandler
62+{ 36+{
63+ Q_OBJECT 37+ Q_OBJECT
64+ 38+
65+ public: 39+ public:
66+ QWSsimpadButtonsHandler(); 40+ QWSsimpadButtonsHandler();
67+ virtual ~QWSsimpadButtonsHandler(); 41+ virtual ~QWSsimpadButtonsHandler();
68+ 42+
69+ bool isOpen() { return fd > 0; } 43+ bool isOpen() { return fd > 0; }
70+ 44+
71+ private slots: 45+ private slots:
72+ void readSwitchesData(); 46+ void readSwitchesData();
73+ void autoRepeat(); 47+ void autoRepeat();
74+ 48+
75+ private: 49+ private:
76+ switches_mask_t switches; 50+ switches_mask_t switches;
77+ 51+
78+ int fd; 52+ int fd;
79+ int repeatdelay; 53+ int repeatdelay;
80+ int repeatperiod; 54+ int repeatperiod;
81+ 55+
82+ int lastCode; // last native code 56+ int lastCode; // last native code
83+ int lastPress; // last press/release state 57+ int lastPress; // last press/release state
84+ 58+
85+ int k; // last emitted Qt key code 59+ int k; // last emitted Qt key code
86+ int shiftKeyPressed; // true if one of the SHIFT keys has been pressed and not yet released 60+ int shiftKeyPressed; // true if one of the SHIFT keys has been pressed and not yet released
87+ bool shiftUsed; // true if SHIFT has been used 61+ bool shiftUsed; // true if SHIFT has been used
88+ 62+
89+ QTime eventTimer; // tracks time between raw events 63+ QTime eventTimer; // tracks time between raw events
90+ QTimer* repeater; 64+ QTimer* repeater;
91+ QSocketNotifier *notifier; 65+ QSocketNotifier *notifier;
92+}; 66+};
93+ 67+
94 #ifdef QT_QWS_SL5XXX 68 #ifdef QT_QWS_SL5XXX
95 static const QWSServer::KeyMap keyM[] = { 69 static const QWSServer::KeyMap keyM[] = {
96 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 00 70 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 00
97@@ -1440,7 +1494,11 @@ 71@@ -1440,7 +1494,11 @@
98 } else { 72 } else {
99 type = spec; 73 type = spec;
100 } 74 }
101- 75-
102+ if ( type == "SIMpad" ) 76+ if ( type == "SIMpad" )
103+ { 77+ {
104+ qDebug( "QWSKeyboardHandler: using SIMpad keyboard handler..." ); 78+ qDebug( "QWSKeyboardHandler: using SIMpad keyboard handler..." );
105+ handler = new QWSsimpadButtonsHandler(); 79+ handler = new QWSsimpadButtonsHandler();
106+ } 80+ }
107 if ( type == "Buttons" ) { 81 if ( type == "Buttons" ) {
108 #if defined(QT_QWS_YOPY) 82 #if defined(QT_QWS_YOPY)
109 handler = new QWSyopyButtonsHandler(); 83 handler = new QWSyopyButtonsHandler();
110@@ -1469,6 +1527,217 @@ 84@@ -1469,6 +1527,217 @@
111 return keyM; 85 return keyM;
112 } 86 }
113 87
114-#endif // QT_NO_QWS_KEYBOARD 88-#endif // QT_NO_QWS_KEYBOARD
115 89
116+/* 90+/*
117+ * SIMpad switches handler 91+ * SIMpad switches handler
118+ * (C) 2003 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> 92+ * (C) 2003 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
119+ */ 93+ */
120+ 94+
121+ 95+
122+QWSsimpadButtonsHandler::QWSsimpadButtonsHandler() 96+QWSsimpadButtonsHandler::QWSsimpadButtonsHandler()
123+ :QWSKeyboardHandler(), fd( -1 ), 97+ :QWSKeyboardHandler(), fd( -1 ),
124+ repeatdelay( 700 ), repeatperiod( 80 ), 98+ repeatdelay( 700 ), repeatperiod( 80 ),
125+ lastCode( 0 ), lastPress( 0 ), 99+ lastCode( 0 ), lastPress( 0 ),
126+ k( -1 ), shiftKeyPressed( 0 ), shiftUsed( false ) 100+ k( -1 ), shiftKeyPressed( 0 ), shiftUsed( false )
127+{ 101+{
128+ qDebug( "SimpadButtonsHandler() - V4.1" ); 102+ qDebug( "SimpadButtonsHandler() - V4.1" );
129+ fd = ::open( SIMPAD_SWITCHES_DEVICE, O_RDWR | O_NDELAY, 0 ); 103+ fd = ::open( SIMPAD_SWITCHES_DEVICE, O_RDWR | O_NDELAY, 0 );
130+ if ( fd < 0 ) 104+ if ( fd < 0 )
131+ { 105+ {
132+ qWarning( "SimpadButtonsHandler(): can't open %s", SIMPAD_SWITCHES_DEVICE ); 106+ qWarning( "SimpadButtonsHandler(): can't open %s", SIMPAD_SWITCHES_DEVICE );
133+ return; 107+ return;
134+ } 108+ }
135 109
136+ notifier = new QSocketNotifier( fd, QSocketNotifier::Read, this ); 110+ notifier = new QSocketNotifier( fd, QSocketNotifier::Read, this );
137+ connect( notifier, SIGNAL( activated(int) ),this, SLOT( readSwitchesData() ) ); 111+ connect( notifier, SIGNAL( activated(int) ),this, SLOT( readSwitchesData() ) );
138+ 112+
139+ repeater = new QTimer(this); 113+ repeater = new QTimer(this);
140+ connect(repeater, SIGNAL(timeout()), this, SLOT(autoRepeat())); 114+ connect(repeater, SIGNAL(timeout()), this, SLOT(autoRepeat()));
141+ 115+
142+} 116+}
143+ 117+
144+ 118+
145+QWSsimpadButtonsHandler::~QWSsimpadButtonsHandler() 119+QWSsimpadButtonsHandler::~QWSsimpadButtonsHandler()
146+{ 120+{
147+ qDebug( "~SimpadButtonsHandler()" ); 121+ qDebug( "~SimpadButtonsHandler()" );
148+ if ( fd > 0 ) 122+ if ( fd > 0 )
149+ { 123+ {
150+ ::close( fd ); 124+ ::close( fd );
151+ fd = -1; 125+ fd = -1;
152+ } 126+ }
153+} 127+}
154+ 128+
155+ 129+
156+void QWSsimpadButtonsHandler::readSwitchesData() 130+void QWSsimpadButtonsHandler::readSwitchesData()
157+{ 131+{
158+ qDebug( "SimpadButtonsHandler() - detected switches action" ); 132+ qDebug( "SimpadButtonsHandler() - detected switches action" );
159+ 133+
160+ if ( ::read( fd, &switches, sizeof switches ) < 0 ) 134+ if ( ::read( fd, &switches, sizeof switches ) < 0 )
161+ { 135+ {
162+ qWarning( "SimpadButtonsHandler() - switches read error!" ); 136+ qWarning( "SimpadButtonsHandler() - switches read error!" );
163+ return; 137+ return;
164+ } 138+ }
165+ 139+
166+ qDebug( "SimpadButtonsHandler() - Shift: %0x [used: %0x] + Event = %0x | %0x", 140+ qDebug( "SimpadButtonsHandler() - Shift: %0x [used: %0x] + Event = %0x | %0x",
167+ shiftKeyPressed, shiftUsed, switches.events[0], switches.states[0] ); 141+ shiftKeyPressed, shiftUsed, switches.events[0], switches.states[0] );
168+ 142+
169+ bool press = switches.states[0]; // == switches.event[0]; 143+ bool press = switches.states[0]; // == switches.event[0];
170+ int code = switches.events[0]; 144+ int code = switches.events[0];
171+ 145+
172+ //========================================================================= 146+ //=========================================================================
173+ 147+
174+ /** 148+ /**
175+ * Work around a bug in the kernel keyboard driver emitting 149+ * Work around a bug in the kernel keyboard driver emitting
176+ * bogus events when pressing multiple switches at once 150+ * bogus events when pressing multiple switches at once
177+ **/ 151+ **/
178+ 152+
179+ if ( lastCode == 0 ) 153+ if ( lastCode == 0 )
180+ { 154+ {
181+ // first press ever 155+ // first press ever
182+ eventTimer.start(); 156+ eventTimer.start();
183+ lastPress = press; 157+ lastPress = press;
184+ lastCode = code; 158+ lastCode = code;
185+ } 159+ }
186+ else 160+ else
187+ { 161+ {
188+ int interval = eventTimer.restart(); 162+ int interval = eventTimer.restart();
189+ qDebug( "event interval = %d", interval ); 163+ qDebug( "event interval = %d", interval );
190+ if ( code == lastCode && interval < 10 ) 164+ if ( code == lastCode && interval < 10 )
191+ { 165+ {
192+ qDebug( "event interval too small - ignoring bogus event" ); 166+ qDebug( "event interval too small - ignoring bogus event" );
193+ qDebug( "did I say i hate buggy kernel drivers? :-D" ); 167+ qDebug( "did I say i hate buggy kernel drivers? :-D" );
194+ return; 168+ return;
195+ } 169+ }
196+ 170+
197+ lastPress = press; 171+ lastPress = press;
198+ lastCode = code; 172+ lastCode = code;
199+ } 173+ }
200+ 174+
201+ /** 175+ /**
202+ * Actually it may also be a hardware problem, but I really don't like 176+ * Actually it may also be a hardware problem, but I really don't like
203+ * to review kernel code for further inquiry. So just being lazy and 177+ * to review kernel code for further inquiry. So just being lazy and
204+ * do the workaround in user space :-D 178+ * do the workaround in user space :-D
205+ **/ 179+ **/
206+ 180+
207+ //===================================================================== 181+ //=====================================================================
208+ 182+
209+ if ( shiftKeyPressed ) 183+ if ( shiftKeyPressed )
210+ { 184+ {
211+ // a shift key obviously is being held 185+ // a shift key obviously is being held
212+ qDebug( "while shift key is being held..." ); 186+ qDebug( "while shift key is being held..." );
213+ 187+
214+ if ( code != shiftKeyPressed ) 188+ if ( code != shiftKeyPressed )
215+ { 189+ {
216+ // another key is being touched - that means shift mode for us! 190+ // another key is being touched - that means shift mode for us!
217+ qDebug( " another key is being touched -> shift use now = true" ); 191+ qDebug( " another key is being touched -> shift use now = true" );
218+ 192+
219+ shiftUsed = true; 193+ shiftUsed = true;
220+ 194+
221+ if ( shiftKeyPressed == SIMPAD_SWITCH_LOWER ) // SHIFT 1 195+ if ( shiftKeyPressed == SIMPAD_SWITCH_LOWER ) // SHIFT 1
222+ { 196+ {
223+ qDebug( " shift mode 1" ); 197+ qDebug( " shift mode 1" );
224+ switch(code) 198+ switch(code)
225+ { 199+ {
226+ case SIMPAD_SWITCH_UP: k = Qt::Key_F9; break; // Shift1-Up = Calendar 200+ case SIMPAD_SWITCH_UP: k = Qt::Key_F9; break; // Shift1-Up = Calendar
227+ case SIMPAD_SWITCH_DOWN: k = Qt::Key_F10; break; // Shift1-Down = Contacts 201+ case SIMPAD_SWITCH_DOWN: k = Qt::Key_F10; break; // Shift1-Down = Contacts
228+ case SIMPAD_SWITCH_LEFT: k = Qt::Key_F13; break; // Shift1-Left = Mail 202+ case SIMPAD_SWITCH_LEFT: k = Qt::Key_F13; break; // Shift1-Left = Mail
229+ case SIMPAD_SWITCH_RIGHT: k = Qt::Key_F11; break; // Shift1-Up = Menu 203+ case SIMPAD_SWITCH_RIGHT: k = Qt::Key_F11; break; // Shift1-Up = Menu
230+ case SIMPAD_SWITCH_UPPER: k = Qt::Key_F12; break; // Shift1-Upper = Home 204+ case SIMPAD_SWITCH_UPPER: k = Qt::Key_F12; break; // Shift1-Upper = Home
231+ default: k=-1; qWarning( "SimpadButtonsHandler() - unhandled event for Shift 1 !" ); break; 205+ default: k=-1; qWarning( "SimpadButtonsHandler() - unhandled event for Shift 1 !" ); break;
232+ } 206+ }
233+ } 207+ }
234+ else if ( shiftKeyPressed == SIMPAD_SWITCH_UPPER ) // SHIFT 2 208+ else if ( shiftKeyPressed == SIMPAD_SWITCH_UPPER ) // SHIFT 2
235+ { 209+ {
236+ qDebug( " shift mode 2" ); 210+ qDebug( " shift mode 2" );
237+ switch(code) 211+ switch(code)
238+ { 212+ {
239+ case SIMPAD_SWITCH_UP: k = Qt::Key_F5; break; // Shift2-Up = F5 213+ case SIMPAD_SWITCH_UP: k = Qt::Key_F5; break; // Shift2-Up = F5
240+ case SIMPAD_SWITCH_DOWN: k = Qt::Key_F6; break; // Shift2-Down = F6 214+ case SIMPAD_SWITCH_DOWN: k = Qt::Key_F6; break; // Shift2-Down = F6
241+ case SIMPAD_SWITCH_LEFT: k = Qt::Key_F7; break; // Shift2-Left = F7 215+ case SIMPAD_SWITCH_LEFT: k = Qt::Key_F7; break; // Shift2-Left = F7
242+ case SIMPAD_SWITCH_RIGHT: k = Qt::Key_F8; break; // Shift2-Up = F8 216+ case SIMPAD_SWITCH_RIGHT: k = Qt::Key_F8; break; // Shift2-Up = F8
243+ case SIMPAD_SWITCH_LOWER: k = Qt::Key_F9; break; // Shift2-Lower = F9 217+ case SIMPAD_SWITCH_LOWER: k = Qt::Key_F9; break; // Shift2-Lower = F9
244+ default: k=-1; qWarning( "SimpadButtonsHandler() - unhandled event for Shift 2!" ); break; 218+ default: k=-1; qWarning( "SimpadButtonsHandler() - unhandled event for Shift 2!" ); break;
245+ } 219+ }
246+ } 220+ }
247+ } 221+ }
248+ else 222+ else
249+ { 223+ {
250+ qDebug( " shift key has been released. checking if being used..." ); 224+ qDebug( " shift key has been released. checking if being used..." );
251+ shiftKeyPressed = 0; 225+ shiftKeyPressed = 0;
252+ 226+
253+ if ( !shiftUsed ) 227+ if ( !shiftUsed )
254+ { 228+ {
255+ qDebug( " ... has _not_ being used -> really emit the key" ); 229+ qDebug( " ... has _not_ being used -> really emit the key" );
256+ k = ( code == SIMPAD_SWITCH_UPPER ? Qt::Key_Escape : Qt::Key_Return ); 230+ k = ( code == SIMPAD_SWITCH_UPPER ? Qt::Key_Escape : Qt::Key_Return );
257+ qDebug( "Emitting key = %d (pressed)", k ); 231+ qDebug( "Emitting key = %d (pressed)", k );
258+ processKeyEvent( 0, k, 0, true, true ); 232+ processKeyEvent( 0, k, 0, true, true );
259+ qDebug( "Emitting key = %d (released)", k ); 233+ qDebug( "Emitting key = %d (released)", k );
260+ processKeyEvent( 0, k, 0, false, true ); 234+ processKeyEvent( 0, k, 0, false, true );
261+ return; 235+ return;
262+ } 236+ }
263+ else 237+ else
264+ { 238+ {
265+ qDebug( " ... has being used -> doing nothing" ); 239+ qDebug( " ... has being used -> doing nothing" );
266+ return; 240+ return;
267+ } 241+ }
268+ } 242+ }
269+ } 243+ }
270+ else 244+ else
271+ { 245+ {
272+ qDebug( "standard mode - no shift yet..." ); 246+ qDebug( "standard mode - no shift yet..." );
273+ 247+
274+ switch(code) 248+ switch(code)
275+ { 249+ {
276+ case SIMPAD_SWITCH_UP: k = Qt::Key_Up; break; 250+ case SIMPAD_SWITCH_UP: k = Qt::Key_Up; break;
277+ case SIMPAD_SWITCH_DOWN: k = Qt::Key_Down; break; 251+ case SIMPAD_SWITCH_DOWN: k = Qt::Key_Down; break;
278+ case SIMPAD_SWITCH_LEFT: k = Qt::Key_Left; break; 252+ case SIMPAD_SWITCH_LEFT: k = Qt::Key_Left; break;
279+ case SIMPAD_SWITCH_RIGHT: k = Qt::Key_Right; break; 253+ case SIMPAD_SWITCH_RIGHT: k = Qt::Key_Right; break;
280+ 254+
281+ case SIMPAD_SWITCH_UPPER: k=-1; shiftKeyPressed = press? code:0; shiftUsed = false; qDebug( "shiftkey pressed now = %d", shiftKeyPressed ); return; 255+ case SIMPAD_SWITCH_UPPER: k=-1; shiftKeyPressed = press? code:0; shiftUsed = false; qDebug( "shiftkey pressed now = %d", shiftKeyPressed ); return;
282+ case SIMPAD_SWITCH_LOWER: k=-1; shiftKeyPressed = press? code:0; shiftUsed = false; qDebug( "shiftkey pressed now = %d", shiftKeyPressed ); return; 256+ case SIMPAD_SWITCH_LOWER: k=-1; shiftKeyPressed = press? code:0; shiftUsed = false; qDebug( "shiftkey pressed now = %d", shiftKeyPressed ); return;
283+ 257+
284+ default: k=-1; qWarning( "SimpadButtonsHandler() - unhandled event!" ); break; 258+ default: k=-1; qWarning( "SimpadButtonsHandler() - unhandled event!" ); break;
285+ } 259+ }
286+ } 260+ }
287+ 261+
288+ if ( k == -1 ) 262+ if ( k == -1 )
289+ { 263+ {
290+ qDebug( "no key to emit - returning." ); 264+ qDebug( "no key to emit - returning." );
291+ return; 265+ return;
292+ } 266+ }
293+ 267+
294+ bool repeatable = ( k == Qt::Key_Up || k == Qt::Key_Down || 268+ bool repeatable = ( k == Qt::Key_Up || k == Qt::Key_Down ||
295+ k == Qt::Key_Right || k == Qt::Key_Left ); 269+ k == Qt::Key_Right || k == Qt::Key_Left );
296+ 270+
297+ qDebug( "key to emit = %d [%s] [repeat=%s]", k, 271+ qDebug( "key to emit = %d [%s] [repeat=%s]", k,
298+ press ? "press" : "release", 272+ press ? "press" : "release",
299+ repeatable ? "true":"false" ); 273+ repeatable ? "true":"false" );
300+ 274+
301+ if ( qt_screen->isTransformed() && k >= Qt::Key_Left && k <= Qt::Key_Down ) 275+ if ( qt_screen->isTransformed() && k >= Qt::Key_Left && k <= Qt::Key_Down )
302+ { 276+ {
303+ qDebug( "SimpadButtonsHandler() - We are transformed! Correcting..." ); 277+ qDebug( "SimpadButtonsHandler() - We are transformed! Correcting..." );
304+ int oldK = k; 278+ int oldK = k;
305+ k = xform_dirkey( k ); 279+ k = xform_dirkey( k );
306+ qDebug( "SimpadButtonsHandler() - Old Key: %d - New Key %d", oldK, k ); 280+ qDebug( "SimpadButtonsHandler() - Old Key: %d - New Key %d", oldK, k );
307+ } 281+ }
308+ 282+
309+ if ( repeatable && press ) 283+ if ( repeatable && press )
310+ repeater->start( repeatdelay, true ); 284+ repeater->start( repeatdelay, true );
311+ else 285+ else
312+ repeater->stop(); 286+ repeater->stop();
313+ 287+
314+ qwsServer->processKeyEvent( 0, k, 0, press, false ); 288+ qwsServer->processKeyEvent( 0, k, 0, press, false );
315+} 289+}
316+ 290+
317+ 291+
318+void QWSsimpadButtonsHandler::autoRepeat() 292+void QWSsimpadButtonsHandler::autoRepeat()
319+{ 293+{
320+ qDebug( "Emitting key = %d (released)", k ); 294+ qDebug( "Emitting key = %d (released)", k );
321+ processKeyEvent( 0, k, 0, false, true ); 295+ processKeyEvent( 0, k, 0, false, true );
322+ qDebug( "Emitting key = %d (pressed)", k ); 296+ qDebug( "Emitting key = %d (pressed)", k );
323+ processKeyEvent( 0, k, 0, true, true ); 297+ processKeyEvent( 0, k, 0, true, true );
324+ repeater->start(repeatperiod); 298+ repeater->start(repeatperiod);
325+} 299+}
326+ 300+
327+ 301+
328+#endif // QT_NO_QWS_KEYBOARD 302+#endif // QT_NO_QWS_KEYBOARD