Init display orientation according to panel orientation
- Initialize the display default orientation to panel orientation.
- honor the panel orientation only after the end of boot animation
or the new orientation is as same as panel orientation.
Change-Id: Ieece097ff7c3710e379f47028900aed59a96c8d5
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index e406744..85e41c1 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -480,6 +480,7 @@
void SurfaceFlinger::startBootAnim() {
// start boot animation
+ mBootFinished = false;
property_set("service.bootanim.exit", "0");
property_set("ctl.start", "bootanim");
}
@@ -1318,8 +1319,14 @@
|| (state.viewport != draw[i].viewport)
|| (state.frame != draw[i].frame))
{
- disp->setProjection(state.orientation,
- state.viewport, state.frame);
+ // Honor the orientation change after boot
+ // animation completes or the new orientation is
+ // same as panel orientation..
+ if(mBootFinished ||
+ state.orientation == disp->getOrientation()) {
+ disp->setProjection(state.orientation,
+ state.viewport, state.frame);
+ }
}
if (state.width != draw[i].width || state.height != draw[i].height) {
disp->setDisplaySize(state.width, state.height);