ScalingFitlerInterpreter: Don't depend on device class
This way, a change in the xorg.conf file about whether a device is a
mouse or touchpad will take effect.
This is needed b/c the ThinkPad Compact Keyboard shows up a touch
device (crazy, I know).
BUG=chromium:430319
TEST=Manually tested scrolling and pointer movement. No regressions in
regression test suite.
Change-Id: Id0ffe193cf8ca1a883b81dd5072f87858bb3e75b
Reviewed-on: https://chromium-review.googlesource.com/228298
Reviewed-by: Dennis Kempin <denniskempin@chromium.org>
Tested-by: Andrew de los Reyes <adlr@chromium.org>
Commit-Queue: Andrew de los Reyes <adlr@chromium.org>
diff --git a/include/scaling_filter_interpreter.h b/include/scaling_filter_interpreter.h
index 18bd43d..1c610c5 100755
--- a/include/scaling_filter_interpreter.h
+++ b/include/scaling_filter_interpreter.h
@@ -70,8 +70,6 @@
bool IsMouseDevice(GestureInterpreterDeviceClass devclass);
bool IsTouchpadDevice(GestureInterpreterDeviceClass devclass);
- GestureInterpreterDeviceClass devclass_;
-
float tp_x_scale_, tp_y_scale_;
float tp_x_translate_, tp_y_translate_;
diff --git a/src/scaling_filter_interpreter.cc b/src/scaling_filter_interpreter.cc
index e24cdfb..10b8de6 100755
--- a/src/scaling_filter_interpreter.cc
+++ b/src/scaling_filter_interpreter.cc
@@ -18,7 +18,6 @@
PropRegistry* prop_reg, Interpreter* next, Tracer* tracer,
GestureInterpreterDeviceClass devclass)
: FilterInterpreter(NULL, next, tracer, false),
- devclass_(devclass),
tp_x_scale_(1.0),
tp_y_scale_(1.0),
tp_x_translate_(0.0),
@@ -101,21 +100,15 @@
bool ScalingFilterInterpreter::IsTouchpadDevice(
GestureInterpreterDeviceClass devclass) {
return (devclass == GESTURES_DEVCLASS_TOUCHPAD ||
- devclass == GESTURES_DEVCLASS_MULTITOUCH_MOUSE);
+ devclass == GESTURES_DEVCLASS_MULTITOUCH_MOUSE ||
+ devclass == GESTURES_DEVCLASS_TOUCHSCREEN);
}
void ScalingFilterInterpreter::ScaleHardwareState(HardwareState* hwstate) {
- if (devclass_ == GESTURES_DEVCLASS_TOUCHPAD ||
- devclass_ == GESTURES_DEVCLASS_TOUCHSCREEN) {
+ if (device_touchpad_.val_)
ScaleTouchpadHardwareState(hwstate);
- } else if (devclass_ == GESTURES_DEVCLASS_MOUSE) {
+ if (device_mouse_.val_)
ScaleMouseHardwareState(hwstate);
- } else if (devclass_ == GESTURES_DEVCLASS_MULTITOUCH_MOUSE) {
- ScaleTouchpadHardwareState(hwstate);
- ScaleMouseHardwareState(hwstate);
- } else {
- Err("Couldn't recognize devclass: %d", devclass_);
- }
}
void ScalingFilterInterpreter::ScaleMouseHardwareState(
@@ -234,7 +227,7 @@
break;
}
case kGestureTypeScroll:
- if (devclass_ != GESTURES_DEVCLASS_MOUSE) {
+ if (!(device_mouse_.val_ && !device_touchpad_.val_)) {
copy.details.scroll.dx *= screen_x_scale_;
copy.details.scroll.dy *= screen_y_scale_;
copy.details.scroll.ordinal_dx *= screen_x_scale_;