Commit 3c775c28 authored by Rob Schonberger's avatar Rob Schonberger Committed by Commit Bot

Rename CancelAllTouches to the appropriate "MaybeCancelAllTouches".

By doing so, note that a break in a for loop is not appropriate when
not all items are cancelled. So only cancel if all items are
cancelled, etc.

Bug: 982118
Bug: 946868
Change-Id: I098eb046b9e0407493033b865ad6bb38a1ec5231
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1694281
Commit-Queue: Rob Schonberger <robsc@chromium.org>
Reviewed-by: default avatarMichael Spang <spang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#676210}
parent 39d427c5
......@@ -250,7 +250,7 @@ void TouchEventConverterEvdev::Initialize(const EventDeviceInfo& info) {
events_[0].cancelled = false;
}
if (cancelled_state)
CancelAllTouches();
MaybeCancelAllTouches();
false_touch_finder_ = FalseTouchFinder::Create(GetTouchscreenSize());
}
......@@ -514,12 +514,12 @@ void TouchEventConverterEvdev::ReportTouchEvent(
details, timestamp, flags));
}
void TouchEventConverterEvdev::CancelAllTouches() {
bool TouchEventConverterEvdev::MaybeCancelAllTouches() {
// TODO(denniskempin): Remove once upper layers properly handle single
// cancelled touches.
if (base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kDisableCancelAllTouches)) {
return;
return false;
}
for (size_t i = 0; i < events_.size(); i++) {
InProgressTouchEvdev* event = &events_[i];
......@@ -528,6 +528,7 @@ void TouchEventConverterEvdev::CancelAllTouches() {
event->altered = true;
}
}
return true;
}
bool TouchEventConverterEvdev::IsPalm(const InProgressTouchEvdev& touch) {
......@@ -552,10 +553,11 @@ void TouchEventConverterEvdev::ReportEvents(base::TimeTicks timestamp) {
if (event->altered && (event->cancelled ||
(false_touch_finder_ &&
false_touch_finder_->SlotHasNoise(event->slot)))) {
CancelAllTouches();
if (MaybeCancelAllTouches()) {
break;
}
}
}
for (size_t i = 0; i < events_.size(); i++) {
InProgressTouchEvdev* event = &events_[i];
......
......@@ -90,7 +90,8 @@ class EVENTS_OZONE_EVDEV_EXPORT TouchEventConverterEvdev
void UpdateTrackingId(int slot, int tracking_id);
void ReleaseTouches();
void CancelAllTouches();
// Returns true if all touches were marked cancelled. Otherwise false.
bool MaybeCancelAllTouches();
bool IsPalm(const InProgressTouchEvdev& touch);
// Normalize pressure value to [0, 1].
float ScalePressure(int32_t value) const;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment