diff options
author | Dennis Kempin <denniskempin@chromium.org> | 2013-03-26 15:15:27 -0700 |
---|---|---|
committer | ChromeBot <chrome-bot@google.com> | 2013-03-27 15:49:29 -0700 |
commit | 720b0f88ea98c5e1605a23a97fc6d2451797697f (patch) | |
tree | ca8b667267facf2c3a37ed9261f5e514bb6e7aea /src/click_wiggle_filter_interpreter.cc | |
parent | bfb7a2281cc77552c164493f044072681a96f6ed (diff) | |
download | libchrome-gestures-720b0f88ea98c5e1605a23a97fc6d2451797697f.tar.gz |
click_wiggle_filter: Don't look at pressure
We used to look at pressure to only block wiggle from the pressing
finger, however resting fingers are causing wiggling too.
This CL removes the pressure logic.
This change introduces minor regressions as it is influencing the
movement distance in drag situations. This is not noticable in day to
day use.
BUG=chromium:222228
TEST=link/right_click_no_wiggle
Change-Id: I72fcfe27e9b9273942f00ed4e4a90ee04337ce43
Reviewed-on: https://gerrit.chromium.org/gerrit/46563
Reviewed-by: Andrew de los Reyes <adlr@chromium.org>
Commit-Queue: Dennis Kempin <denniskempin@chromium.org>
Tested-by: Dennis Kempin <denniskempin@chromium.org>
Diffstat (limited to 'src/click_wiggle_filter_interpreter.cc')
-rw-r--r-- | src/click_wiggle_filter_interpreter.cc | 29 |
1 files changed, 5 insertions, 24 deletions
diff --git a/src/click_wiggle_filter_interpreter.cc b/src/click_wiggle_filter_interpreter.cc index 257a448..0e8a68c 100644 --- a/src/click_wiggle_filter_interpreter.cc +++ b/src/click_wiggle_filter_interpreter.cc @@ -78,8 +78,7 @@ void ClickWiggleFilterInterpreter::UpdateClickWiggle( fs.position_x, // button down x fs.position_y, // button down y hwstate.timestamp + timeout, // unused during click down - !button_up_edge, // block inc press - true // block dec press + true // suppress }; wiggle_recs_[fs.tracking_id] = rec; continue; @@ -88,39 +87,22 @@ void ClickWiggleFilterInterpreter::UpdateClickWiggle( // We have an existing finger ClickWiggleRec* rec = &(*it).second; - if (!rec->suppress_inc_press_ && !rec->suppress_dec_press_) + if (!rec->suppress_) continue; // It's already broken out of wiggle suppression float dx = fs.position_x - rec->x_; float dy = fs.position_y - rec->y_; if (dx * dx + dy * dy > wiggle_max_dist_.val_ * wiggle_max_dist_.val_) { // It's moved too much to be considered wiggle - rec->suppress_inc_press_ = rec->suppress_dec_press_ = false; + rec->suppress_ = false; continue; } if (hwstate.timestamp >= rec->began_press_suppression_) { // Too much time has passed to consider this wiggle - rec->suppress_inc_press_ = rec->suppress_dec_press_ = false; + rec->suppress_ = false; continue; } - - if (!rec->suppress_inc_press_ && !rec->suppress_dec_press_) - continue; // This happens when a finger is around on a down-edge - - if (!MapContainsKey(prev_pressure_, fs.tracking_id)) { - Err("Missing prev_fs?"); - continue; - } - - if (fs.pressure >= prev_pressure_[fs.tracking_id] && - rec->suppress_inc_press_) - continue; - rec->suppress_inc_press_ = false; - if (fs.pressure <= prev_pressure_[fs.tracking_id] && - rec->suppress_dec_press_) - continue; - rec->suppress_dec_press_ = false; } } @@ -142,8 +124,7 @@ void ClickWiggleFilterInterpreter::SetWarpFlags(HardwareState* hwstate) const { Err("Missing finger in wiggle recs."); continue; } - if (wiggle_recs_[fs->tracking_id].suppress_inc_press_ || - wiggle_recs_[fs->tracking_id].suppress_dec_press_) + if (wiggle_recs_[fs->tracking_id].suppress_) fs->flags |= (GESTURES_FINGER_WARP_X | GESTURES_FINGER_WARP_Y); } } |