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_;