summaryrefslogtreecommitdiff
path: root/tizen_src/chromium_impl/content/browser/renderer_host/render_widget_host_view_efl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'tizen_src/chromium_impl/content/browser/renderer_host/render_widget_host_view_efl.cc')
-rwxr-xr-xtizen_src/chromium_impl/content/browser/renderer_host/render_widget_host_view_efl.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/tizen_src/chromium_impl/content/browser/renderer_host/render_widget_host_view_efl.cc b/tizen_src/chromium_impl/content/browser/renderer_host/render_widget_host_view_efl.cc
index 9c231a04683c..85ceb88aef10 100755
--- a/tizen_src/chromium_impl/content/browser/renderer_host/render_widget_host_view_efl.cc
+++ b/tizen_src/chromium_impl/content/browser/renderer_host/render_widget_host_view_efl.cc
@@ -189,6 +189,7 @@ RenderWidgetHostViewEfl::RenderWidgetHostViewEfl(RenderWidgetHost* widget,
surface_id_(0),
is_modifier_key_(false),
touch_events_enabled_(false),
+ should_check_move_threshold_(false),
web_contents_(web_contents),
compositor_(NULL),
root_layer_(new ui::Layer(ui::LAYER_SOLID_COLOR)),
@@ -1547,6 +1548,25 @@ void RenderWidgetHostViewEfl::ProcessTouchEvents() {
evas_touch_point_list_nth_xy_get(evas_, i, &pt.x, &pt.y);
state = evas_touch_point_list_nth_state_get(evas_, i);
+ // Filter out events jittery for single-touch gestures.
+ if (count == 1) {
+ if (state == EVAS_TOUCH_POINT_DOWN) {
+ should_check_move_threshold_ = true;
+ last_single_press_down_position_ = gfx::Point(pt.x, pt.y);
+ } else if (should_check_move_threshold_ &&
+ state == EVAS_TOUCH_POINT_MOVE) {
+ gfx::Point current_point(pt.x, pt.y);
+ gfx::Vector2d diff = current_point - last_single_press_down_position_;
+
+ unsigned threshold =
+ elm_config_scroll_thumbscroll_threshold_get();
+ if (diff.LengthSquared() < threshold * threshold)
+ return;
+
+ should_check_move_threshold_ = false;
+ }
+ }
+
ui::TouchEvent touch_event = MakeTouchEvent(pt, state, id, content_image_);
HandleTouchEvent(&touch_event);
}