summaryrefslogtreecommitdiff
path: root/recipes/libopie/libopie2
diff options
context:
space:
mode:
authorPaul Eggleton <bluelightning@bluelightning.org>2009-05-28 00:17:01 +0100
committerPaul Eggleton <bluelightning@bluelightning.org>2009-05-28 00:17:01 +0100
commitac97bd863e5c69efc12044237b4b0ca411890097 (patch)
tree473f07035c7e5602e62e802be9dc024f7011549b /recipes/libopie/libopie2
parent0e8d0a39dfd278718dea7b3218a89f63e7b6a8ca (diff)
libopie2/qte: fix bad cursor key rotation on some devices
* Should fix bad cursor key rotation with respect to the screen on some devices and hopefully won't affect devices that were OK. * All responsibility for rotating the cursor keys now lies with ODevice (libopie2). Any further fixes need to be applied there. * Refer to OE bug #3678 for more information.
Diffstat (limited to 'recipes/libopie/libopie2')
-rw-r--r--recipes/libopie/libopie2/rotate_fix.patch87
1 files changed, 87 insertions, 0 deletions
diff --git a/recipes/libopie/libopie2/rotate_fix.patch b/recipes/libopie/libopie2/rotate_fix.patch
new file mode 100644
index 0000000000..c6a59846a0
--- /dev/null
+++ b/recipes/libopie/libopie2/rotate_fix.patch
@@ -0,0 +1,87 @@
+--- libopie2/opiecore/device/odevice_ipaq.cpp 24 May 2009 20:09:49 -0000 1.40
++++ libopie2/opiecore/device/odevice_ipaq.cpp 27 May 2009 21:16:24 -0000
+@@ -35,6 +35,7 @@
+ #include <qfile.h>
+ #include <qtextstream.h>
+ #include <qwindowsystem_qws.h>
++#include <qgfx_qws.h>
+
+ /* OPIE */
+ #include <qpe/config.h>
+@@ -335,11 +336,11 @@
+ int quarters;
+ switch (d->m_rotation) {
+ case Rot0: quarters = 0/*0deg*/; break;
+- case Rot90: quarters = 1/*90deg*/; break;
++ case Rot90: quarters = 3/*90deg*/; break;
+ case Rot180: quarters = 2/*180deg*/; break;
+- case Rot270: quarters = 3/*270deg*/; break;
++ case Rot270: quarters = 1/*270deg*/; break;
+ }
+- newkeycode = Key_Left + ( keycode - Key_Left + quarters ) % 4;
++ newkeycode = Key_Left + ( keycode - Key_Left + quarters + qt_screen->transformOrientation() ) % 4;
+ break;
+ }
+
+--- libopie2/opiecore/device/odevice_zaurus.cpp 24 May 2009 20:09:49 -0000 1.57
++++ libopie2/opiecore/device/odevice_zaurus.cpp 27 May 2009 21:16:24 -0000
+@@ -807,16 +807,8 @@
+ case Key_Up :
+ case Key_Down :
+ {
+- if (d->m_model == Model_Zaurus_SLC3000) {
+- // This ensures that the cursor keys work correctly and that the
+- // side wheel works as expected when the screen is flipped over
+- if (rotation() == Rot270)
+- newkeycode = Key_Left + ( keycode - Key_Left + 1 ) % 4;
+- }
+- else {
+- if (rotation()==Rot90)
+- newkeycode = Key_Left + ( keycode - Key_Left + 3 ) % 4;
+- }
++ if (rotation()==Rot90)
++ newkeycode = Key_Left + ( keycode - Key_Left + 3 ) % 4;
+ break;
+
+ }
+--- libopie2/opiecore/device/odevice_palm.cpp 2009-05-27 22:28:37.000000000 +0100
++++ libopie2/opiecore/device/odevice_palm.cpp 2009-05-27 22:28:09.000000000 +0100
+@@ -295,25 +295,21 @@
+ {
+ int newkeycode = keycode;
+
+- if (qt_screen->transformOrientation() != Rot0){
+-
+- switch ( keycode ) {
+- case Key_Left :
+- case Key_Right:
+- case Key_Up :
+- case Key_Down :
+- newkeycode = Key_Left + ( keycode - Key_Left + 4 ) % 4;
+- default:
+- break;
+- }
++ switch ( keycode ) {
++ case Key_Left :
++ case Key_Right:
++ case Key_Up :
++ case Key_Down :
++ newkeycode = Key_Left + ( keycode - Key_Left + qt_screen->transformOrientation() ) % 4;
++ default:
++ break;
++ }
+
+- if (newkeycode!=keycode) {
+- if ( newkeycode != Key_unknown ) {
+- QWSServer::sendKeyEvent ( -1, newkeycode, modifiers, isPress, autoRepeat );
+- }
+- return true;
++ if (newkeycode!=keycode) {
++ if ( newkeycode != Key_unknown ) {
++ QWSServer::sendKeyEvent ( -1, newkeycode, modifiers, isPress, autoRepeat );
+ }
+-
++ return true;
+ }
+
+ return false;