summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/input/Input.h2
-rw-r--r--libs/input/Input.cpp13
2 files changed, 8 insertions, 7 deletions
diff --git a/include/input/Input.h b/include/input/Input.h
index 07a566a63c..015efdd064 100644
--- a/include/input/Input.h
+++ b/include/input/Input.h
@@ -577,7 +577,7 @@ public:
inline const ui::Transform& getTransform() const { return mTransform; }
- int32_t getSurfaceRotation() const;
+ std::optional<ui::Rotation> getSurfaceRotation() const;
inline float getXPrecision() const { return mXPrecision; }
diff --git a/libs/input/Input.cpp b/libs/input/Input.cpp
index 162b757743..9e8ebf30c5 100644
--- a/libs/input/Input.cpp
+++ b/libs/input/Input.cpp
@@ -21,6 +21,7 @@
#include <cutils/compiler.h>
#include <inttypes.h>
#include <string.h>
+#include <optional>
#include <android-base/file.h>
#include <android-base/logging.h>
@@ -552,21 +553,21 @@ void MotionEvent::addSample(
&pointerCoords[getPointerCount()]);
}
-int32_t MotionEvent::getSurfaceRotation() const {
+std::optional<ui::Rotation> MotionEvent::getSurfaceRotation() const {
// The surface rotation is the rotation from the window's coordinate space to that of the
// display. Since the event's transform takes display space coordinates to window space, the
// returned surface rotation is the inverse of the rotation for the surface.
switch (mTransform.getOrientation()) {
case ui::Transform::ROT_0:
- return static_cast<int32_t>(ui::ROTATION_0);
+ return ui::ROTATION_0;
case ui::Transform::ROT_90:
- return static_cast<int32_t>(ui::ROTATION_270);
+ return ui::ROTATION_270;
case ui::Transform::ROT_180:
- return static_cast<int32_t>(ui::ROTATION_180);
+ return ui::ROTATION_180;
case ui::Transform::ROT_270:
- return static_cast<int32_t>(ui::ROTATION_90);
+ return ui::ROTATION_90;
default:
- return -1;
+ return std::nullopt;
}
}