summaryrefslogtreecommitdiff
path: root/src/click_wiggle_filter_interpreter.cc
diff options
context:
space:
mode:
authorDennis Kempin <denniskempin@chromium.org>2013-03-26 15:15:27 -0700
committerChromeBot <chrome-bot@google.com>2013-03-27 15:49:29 -0700
commit720b0f88ea98c5e1605a23a97fc6d2451797697f (patch)
treeca8b667267facf2c3a37ed9261f5e514bb6e7aea /src/click_wiggle_filter_interpreter.cc
parentbfb7a2281cc77552c164493f044072681a96f6ed (diff)
downloadlibchrome-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.cc29
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);
}
}