summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--libopie/odevice.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/libopie/odevice.cpp b/libopie/odevice.cpp
index 29c8ad2..713cc90 100644
--- a/libopie/odevice.cpp
+++ b/libopie/odevice.cpp
@@ -1143,15 +1143,27 @@ void Zaurus::init ( )
switch ( d-> m_model ) {
case Model_Zaurus_SLA300:
d-> m_rotation = Rot0;
break;
case Model_Zaurus_SLC700:
- /* note for C700, we must check the display rotation
- * sensor to set an appropriate value
- */
+ bool flipstate = false;
+ // Note: need to 1) set flipstate based on physical screen orientation
+ // and 2) check to see if the user overrode the rotation direction
+ // using appearance, and if so, remove that item from the Config to
+ // ensure the rotate applet flips us back to the previous state.
+ if ( flipstate ) {
+ // 480x640
+ d-> m_rotation = Rot0;
+ d-> m_direction = CW;
+ } else {
+ // 640x480
+ d-> m_rotation = Rot270;
+ d-> m_direction = CCW;
+ }
+ break;
case Model_Zaurus_SLB600:
case Model_Zaurus_SL5500:
case Model_Zaurus_SL5000:
default:
d-> m_rotation = Rot270;
break;