summaryrefslogtreecommitdiff
path: root/libopie/odevice.cpp
Side-by-side diff
Diffstat (limited to 'libopie/odevice.cpp') (more/less context) (ignore 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
@@ -1141,19 +1141,31 @@ void Zaurus::init ( )
d-> m_modelstr = "Zaurus (model unknown)";
}
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;
}
m_leds [0] = Led_Off;