Web page is scrolling during magnifier appearance
authorkeunseob.kim <keunseob.kim@samsung.com>
Tue, 10 Jun 2014 18:43:30 +0000 (11:43 -0700)
committerYoungsoo Choi <kenshin.choi@samsung.com>
Tue, 10 Jul 2018 06:57:09 +0000 (06:57 +0000)
Issue: CBGRAPHICS-245

Change-Id: Ibf1037a62dbe93c336fb2346f40f1a8f05025556

tizen_src/impl/browser/renderer_host/render_widget_host_view_efl.cc
tizen_src/impl/browser/renderer_host/render_widget_host_view_efl.h
tizen_src/impl/eweb_view.cc
tizen_src/impl/eweb_view.h
tizen_src/impl/selection_magnifier_efl.cc

index db2aa38..a3e5b12 100644 (file)
@@ -75,6 +75,7 @@ RenderWidgetHostViewEfl::RenderWidgetHostViewEfl(RenderWidgetHost* widget)
     scroll_detector_(new EflWebview::ScrollDetector()),
     m_IsEvasGLInit(0),
     device_scale_factor_(1.0f),
+    m_magnifier(false),
     egl_image_(0),
     current_pixmap_id_(0),
     next_pixmap_id_(0) {
@@ -918,6 +919,10 @@ void RenderWidgetHostViewEfl::HandleFocusOut() {
   host_->LostCapture();
 }
 
+void RenderWidgetHostViewEfl::set_magnifier(bool status) {
+   m_magnifier = status;
+}
+
 void RenderWidgetHostViewEfl::HandleEvasEvent(const Evas_Event_Mouse_Down* event) {
   host_->ForwardMouseEvent(WebEventFactoryEfl::toWebMouseEvent(web_view_->GetEvas(), web_view_->evas_object(), event, device_scale_factor_));
 }
@@ -1002,6 +1007,9 @@ void RenderWidgetHostViewEfl::HandleGesture(ui::GestureEvent* event) {
     fling_cancel.type = blink::WebInputEvent::GestureFlingCancel;
     fling_cancel.sourceDevice = blink::WebGestureDeviceTouchscreen;
     host_->ForwardGestureEvent(fling_cancel);
+  } else if (event->type() == ui::ET_GESTURE_SCROLL_UPDATE) {
+    if (m_magnifier)
+      return;
   } else if (event->type() == ui::ET_GESTURE_SCROLL_BEGIN) {
     if (GetSelectionController())
       GetSelectionController()->SetScrollStatus(true);
index c0cafe6..34e0bb2 100755 (executable)
@@ -194,6 +194,8 @@ class RenderWidgetHostViewEfl
     return evas_;
   }
 
+  void set_magnifier(bool status);
+
   void Init_EvasGL(int width, int height);
 
   void set_eweb_view(EWebView*);
@@ -276,6 +278,8 @@ class RenderWidgetHostViewEfl
   // The current composition character bounds.
   std::vector<gfx::Rect> composition_character_bounds_;
 
+  bool m_magnifier;
+
   // YUV readback pipeline.
   scoped_ptr<content::ReadbackYUVInterface>
       yuv_readback_pipeline_;
index c2c7b64..6e98268 100644 (file)
@@ -1038,6 +1038,10 @@ bool EWebView::SetUserAgentAppName(const char* application_name) {
   return true;
 }
 
+void EWebView::set_magnifier(bool status) {
+  rwhv()->set_magnifier(status);
+}
+
 const char* EWebView::GetUserAgent() const {
 #warning "[M37] Fix GetUserAgent"
 // NOTE: web_contents_delegate_->web_contents()->GetUserAgentOverride();
index 97be680..3afe681 100644 (file)
@@ -135,6 +135,8 @@ class EWebView
     return orientation_;
   }
 
+  void set_magnifier(bool status);
+
   // ewk_view api
   void SetURL(const char* url_string);
   const char* GetURL() const;
index 2ea76d5..990b125 100644 (file)
@@ -183,12 +183,14 @@ void SelectionMagnifierEfl::Move(const gfx::Point& location) {
 void SelectionMagnifierEfl::Show() {
   evas_object_show(container_);
   controller_->GetParentView()->SmartCallback<EWebViewCallbacks::MagnifierShow>().call();
+  controller_->GetParentView()->set_magnifier(true);
 }
 
 void SelectionMagnifierEfl::Hide() {
   evas_object_hide(content_image_);
   evas_object_hide(container_);
   controller_->GetParentView()->SmartCallback<EWebViewCallbacks::MagnifierHide>().call();
+  controller_->GetParentView()->set_magnifier(false);
 }
 
 }