author | sandman <sandman> | 2002-11-21 22:34:23 (UTC) |
---|---|---|
committer | sandman <sandman> | 2002-11-21 22:34:23 (UTC) |
commit | 7f5fc5e8e1cadbeae4a6f13b1efcbe3468505795 (patch) (side-by-side diff) | |
tree | c71c2b5a40b5b110bbb42b434e8ca743dbb69c69 | |
parent | 71f340d760a5863152ff5d22c60334f421a6c488 (diff) | |
download | opie-7f5fc5e8e1cadbeae4a6f13b1efcbe3468505795.zip opie-7f5fc5e8e1cadbeae4a6f13b1efcbe3468505795.tar.gz opie-7f5fc5e8e1cadbeae4a6f13b1efcbe3468505795.tar.bz2 |
support for the new H3900 iPAQ in the iPAQ keyfilter. Since HP thinks it is
funny to change the screen rotation on every model, I have also
restructured the keyfilter to make it more readable.
-rw-r--r-- | libopie/odevice.cpp | 40 |
1 files changed, 19 insertions, 21 deletions
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp index d8415ad..bc43c52 100644 --- a/libopie/odevice.cpp +++ b/libopie/odevice.cpp @@ -514,29 +514,30 @@ bool iPAQ::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, b { int newkeycode = keycode; - - // simple susbstitutions - switch ( d-> m_model ) { - case Model_iPAQ_H38xx: - // H38xx has no "Q" key anymore - this is now the Mail key - if ( keycode == HardKey_Menu ) + switch ( keycode ) { + // H38xx/H39xx have no "Q" key anymore - this is now the Mail key + case HardKey_Menu: { + if (( d-> m_model == Model_iPAQ_H38xx ) || + ( d-> m_model == Model_iPAQ_H39xx )) { newkeycode = HardKey_Mail; - //nobreak + } + break; + } - case Model_iPAQ_H31xx: // Rotate cursor keys 180° - switch ( keycode ) { - case Key_Left : newkeycode = Key_Right; break; - case Key_Right: newkeycode = Key_Left; break; - case Key_Up : newkeycode = Key_Down; break; - case Key_Down : newkeycode = Key_Up; break; + case Key_Left : + case Key_Right: + case Key_Up : + case Key_Down : { + if (( d-> m_model == Model_iPAQ_H31xx ) || + ( d-> m_model == Model_iPAQ_H38xx )) { + newkeycode = Key_Left + ( keycode - Key_Left + 2 ) % 4; + } + break; } - //nobreak; - case Model_iPAQ_H36xx: - case Model_iPAQ_H37xx: // map Power Button short/long press to F34/F35 - if ( keycode == Key_SysReq ) { + case Key_SysReq: { if ( isPress ) { if ( m_power_timer ) killTimer ( m_power_timer ); @@ -549,12 +550,9 @@ bool iPAQ::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, b QWSServer::sendKeyEvent ( -1, HardKey_Suspend, 0, false, false ); } newkeycode = Key_unknown; - } - //nobreak; - - default: break; } + } if ( newkeycode != keycode ) { if ( newkeycode != Key_unknown ) |