From 2fe6bb7348e8de661b1e0921499ae5bc74c06349 Mon Sep 17 00:00:00 2001 From: Yi Shen Date: Wed, 4 Jun 2014 14:31:01 -0700 Subject: [PATCH] Fix the content area rotation issue Patch fixed the content area display issue when device is rotated. Change-Id: I0c38ffd92659db158b106439662240751413bed3 --- tizen_src/ewk_api_headers/public/ewk_enums.h | 3 ++- tizen_src/impl/browser/renderer_host/render_widget_host_view_efl.cc | 4 ++++ tizen_src/impl/browser/renderer_host/render_widget_host_view_efl.h | 3 +++ tizen_src/impl/common/render_messages_efl.h | 3 +++ tizen_src/impl/eweb_view.cc | 3 ++- tizen_src/impl/renderer/render_view_observer_efl.cc | 5 +++++ tizen_src/impl/renderer/render_view_observer_efl.h | 1 + 7 files changed, 20 insertions(+), 2 deletions(-) diff --git a/tizen_src/ewk_api_headers/public/ewk_enums.h b/tizen_src/ewk_api_headers/public/ewk_enums.h index c0d22a3..6258c99 100644 --- a/tizen_src/ewk_api_headers/public/ewk_enums.h +++ b/tizen_src/ewk_api_headers/public/ewk_enums.h @@ -50,7 +50,8 @@ enum _Ewk_Screen_Orientation_Degrees { EWK_SCREEN_ORIENTATION_NATURAL = 0, EWK_SCREEN_ORIENTATION_90 = 90, EWK_SCREEN_ORIENTATION_MINUS_90 = -90, - EWK_SCREEN_ORIENTATION_180 = 180 + EWK_SCREEN_ORIENTATION_180 = 180, + EWK_SCREEN_ORIENTATION_270 = 270 }; typedef enum _Ewk_Screen_Orientation_Degrees Ewk_Screen_Orientation_Degrees; //#endif diff --git a/tizen_src/impl/browser/renderer_host/render_widget_host_view_efl.cc b/tizen_src/impl/browser/renderer_host/render_widget_host_view_efl.cc index 7258ca8..2f2b5d6 100644 --- a/tizen_src/impl/browser/renderer_host/render_widget_host_view_efl.cc +++ b/tizen_src/impl/browser/renderer_host/render_widget_host_view_efl.cc @@ -762,6 +762,10 @@ void RenderWidgetHostViewEfl::OnDidChangeContentsSize(int width, int height) { web_view_->DidChangeContentsSize(width, height); } +void RenderWidgetHostViewEfl::OnOrientationChangeEvent(int orientation) { + current_orientation_ = orientation; +} + void RenderWidgetHostViewEfl::OnDidChangeMaxScrollOffset(int maxScrollX, int maxScrollY) { scroll_detector_->SetMaxScroll(maxScrollX, maxScrollY); } diff --git a/tizen_src/impl/browser/renderer_host/render_widget_host_view_efl.h b/tizen_src/impl/browser/renderer_host/render_widget_host_view_efl.h index 4c6e40d..ca22576 100644 --- a/tizen_src/impl/browser/renderer_host/render_widget_host_view_efl.h +++ b/tizen_src/impl/browser/renderer_host/render_widget_host_view_efl.h @@ -206,6 +206,7 @@ class RenderWidgetHostViewEfl virtual ~RenderWidgetHostViewEfl(); void OnDidChangeContentsSize(int, int); + void OnOrientationChangeEvent(int); void OnDidChangePageScaleFactor(double); void OnDidChangePageScaleRange(double, double); @@ -254,6 +255,8 @@ class RenderWidgetHostViewEfl // removed from the list on an ET_TOUCH_RELEASED event. blink::WebTouchEvent touch_event_; + int current_orientation_; + DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewEfl); }; diff --git a/tizen_src/impl/common/render_messages_efl.h b/tizen_src/impl/common/render_messages_efl.h index b965c74..4b79ad1 100644 --- a/tizen_src/impl/common/render_messages_efl.h +++ b/tizen_src/impl/common/render_messages_efl.h @@ -225,3 +225,6 @@ IPC_MESSAGE_ROUTED2(EwkHostMsg_DidChangePageScaleRange, IPC_MESSAGE_ROUTED1(EwkViewMsg_SetDrawsTransparentBackground, bool /* enabled */) + +IPC_MESSAGE_ROUTED1(EwkHostMsg_OrientationChangeEvent, + int /* orientation */) diff --git a/tizen_src/impl/eweb_view.cc b/tizen_src/impl/eweb_view.cc index 93a4d2f..ecf9d81 100644 --- a/tizen_src/impl/eweb_view.cc +++ b/tizen_src/impl/eweb_view.cc @@ -492,7 +492,8 @@ void EWebView::SendOrientationChangeEventIfNeeded(int orientation) { if ((orientation != EWK_SCREEN_ORIENTATION_NATURAL) && (orientation != EWK_SCREEN_ORIENTATION_90) && (orientation != EWK_SCREEN_ORIENTATION_MINUS_90) - && (orientation != EWK_SCREEN_ORIENTATION_180)) + && (orientation != EWK_SCREEN_ORIENTATION_180) + && (orientation != EWK_SCREEN_ORIENTATION_270)) return; //return if no change in orientation from previous state if (GetCurrentOrientation() == orientation) diff --git a/tizen_src/impl/renderer/render_view_observer_efl.cc b/tizen_src/impl/renderer/render_view_observer_efl.cc index d68d1ea..98a7bbc 100644 --- a/tizen_src/impl/renderer/render_view_observer_efl.cc +++ b/tizen_src/impl/renderer/render_view_observer_efl.cc @@ -336,3 +336,8 @@ void RenderViewObserverEfl::OnSetDrawsTransparentBackground(bool draws_transpare view->setBaseBackgroundColor(backgroundColor); } + +void RenderViewObserverEfl::OrientationChangeEvent(int orientation) +{ + Send(new EwkHostMsg_OrientationChangeEvent(render_view()->GetRoutingID(), orientation)); +} diff --git a/tizen_src/impl/renderer/render_view_observer_efl.h b/tizen_src/impl/renderer/render_view_observer_efl.h index d45520f..1da5efc 100644 --- a/tizen_src/impl/renderer/render_view_observer_efl.h +++ b/tizen_src/impl/renderer/render_view_observer_efl.h @@ -33,6 +33,7 @@ class RenderViewObserverEfl: public content::RenderViewObserver { bool OnMessageReceived(const IPC::Message& message) OVERRIDE; virtual void DidCreateDocumentElement(blink::WebFrame* frame) OVERRIDE; virtual void DidChangeContentsSize(blink::WebFrame* frame, const blink::WebSize& size) OVERRIDE; + virtual void OrientationChangeEvent(int orientation) OVERRIDE; virtual void DidChangePageScaleFactor() OVERRIDE; //Changes in PageScaleFactorLimits are applied when layoutUpdated is called -- 2.7.4