summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/device/odevice_zaurus.cpp13
1 files changed, 5 insertions, 8 deletions
diff --git a/libopie2/opiecore/device/odevice_zaurus.cpp b/libopie2/opiecore/device/odevice_zaurus.cpp
index 89b9258..59d4eb0 100644
--- a/libopie2/opiecore/device/odevice_zaurus.cpp
+++ b/libopie2/opiecore/device/odevice_zaurus.cpp
@@ -229,35 +229,35 @@ void Zaurus::init(const QString& cpu_info)
229 229
230 if ( m_embedix ) 230 if ( m_embedix )
231 qDebug( "Zaurus::init() - Using the Embedix HAL on a %s", (const char*) d->m_modelstr ); 231 qDebug( "Zaurus::init() - Using the Embedix HAL on a %s", (const char*) d->m_modelstr );
232 else 232 else
233 qDebug( "Zaurus::init() - Using the OpenZaurus HAL on a %s", (const char*) d->m_modelstr ); 233 qDebug( "Zaurus::init() - Using the OpenZaurus HAL on a %s", (const char*) d->m_modelstr );
234} 234}
235 235
236void Zaurus::initButtons() 236void Zaurus::initButtons()
237{ 237{
238 if ( d->m_buttons ) 238 if ( d->m_buttons )
239 return; 239 return;
240 240
241 if ( isQWS( ) ) {
242 addPreHandler(this);
243 }
244 241
245 d->m_buttons = new QValueList <ODeviceButton>; 242 d->m_buttons = new QValueList <ODeviceButton>;
246 243
247 struct z_button * pz_buttons; 244 struct z_button * pz_buttons;
248 int buttoncount; 245 int buttoncount;
249 switch ( d->m_model ) { 246 switch ( d->m_model ) {
250 case Model_Zaurus_SLC3000: // fallthrough 247 case Model_Zaurus_SLC3000: // fallthrough
251 case Model_Zaurus_SLC7x0: 248 case Model_Zaurus_SLC7x0:
249 if ( isQWS( ) ) {
250 addPreHandler(this); // hinge-sensor-handler
251 }
252 pz_buttons = z_buttons_c700; 252 pz_buttons = z_buttons_c700;
253 buttoncount = ARRAY_SIZE(z_buttons_c700); 253 buttoncount = ARRAY_SIZE(z_buttons_c700);
254 break; 254 break;
255 default: 255 default:
256 pz_buttons = z_buttons; 256 pz_buttons = z_buttons;
257 buttoncount = ARRAY_SIZE(z_buttons); 257 buttoncount = ARRAY_SIZE(z_buttons);
258 break; 258 break;
259 } 259 }
260 260
261 for ( int i = 0; i < buttoncount; i++ ) { 261 for ( int i = 0; i < buttoncount; i++ ) {
262 struct z_button *zb = pz_buttons + i; 262 struct z_button *zb = pz_buttons + i;
263 ODeviceButton b; 263 ODeviceButton b;
@@ -594,43 +594,40 @@ OHingeStatus Zaurus::readHingeSensor() const
594 qWarning("Zaurus::readHingeSensor() - couldn't compute hinge status!" ); 594 qWarning("Zaurus::readHingeSensor() - couldn't compute hinge status!" );
595 return CASE_UNKNOWN; 595 return CASE_UNKNOWN;
596 } 596 }
597} 597}
598 598
599/* 599/*
600 * Take code from iPAQ device. 600 * Take code from iPAQ device.
601 * That way we switch the cursor directions depending on status of hinge sensor, eg. hardware direction. 601 * That way we switch the cursor directions depending on status of hinge sensor, eg. hardware direction.
602 * I hope that is ok - Alwin 602 * I hope that is ok - Alwin
603 */ 603 */
604bool Zaurus::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, bool autoRepeat ) 604bool Zaurus::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, bool autoRepeat )
605{ 605{
606 Transformation rot;
607 int newkeycode = keycode; 606 int newkeycode = keycode;
608 607
609
610 if (d->m_model!=Model_Zaurus_SLC3000 && d->m_model!=Model_Zaurus_SLC7x0) return false; 608 if (d->m_model!=Model_Zaurus_SLC3000 && d->m_model!=Model_Zaurus_SLC7x0) return false;
611 rot = rotation();
612 if (rot==Rot0) return false;
613 609
614 /* map cursor keys depending on the hinge status */ 610 /* map cursor keys depending on the hinge status */
615 switch ( keycode ) { 611 switch ( keycode ) {
616 // Rotate cursor keys 612 // Rotate cursor keys
617 case Key_Left : 613 case Key_Left :
618 case Key_Right: 614 case Key_Right:
619 case Key_Up : 615 case Key_Up :
620 case Key_Down : 616 case Key_Down :
621 { 617 {
622 if (rot==Rot90) { 618 if (rotation()==Rot90) {
623 newkeycode = Key_Left + ( keycode - Key_Left + 3 ) % 4; 619 newkeycode = Key_Left + ( keycode - Key_Left + 3 ) % 4;
624 } 620 }
625 } 621 }
626 break; 622 break;
627 623
628 } 624 }
629 if (newkeycode!=keycode) { 625 if (newkeycode!=keycode) {
630 if ( newkeycode != Key_unknown ) { 626 if ( newkeycode != Key_unknown ) {
631 QWSServer::sendKeyEvent ( -1, newkeycode, modifiers, isPress, autoRepeat ); 627 QWSServer::sendKeyEvent ( -1, newkeycode, modifiers, isPress, autoRepeat );
632 } 628 }
633 return true; 629 return true;
634 } 630 }
635 return false; 631 return false;
636} 632}
633