Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(619)

Unified Diff: content/browser/renderer_host/input/synthetic_pointer_action.h

Issue 1884883005: Prepare SyntheticPointerAction to handle touch actions for multiple fingers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: return nullptr Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/input/synthetic_pointer_action.h
diff --git a/content/browser/renderer_host/input/synthetic_pointer_action.h b/content/browser/renderer_host/input/synthetic_pointer_action.h
index 23b23fa421be29b1254cd491eebcbaff13adbb06..683d1b71581143bd93360317de16ab671a82942c 100644
--- a/content/browser/renderer_host/input/synthetic_pointer_action.h
+++ b/content/browser/renderer_host/input/synthetic_pointer_action.h
@@ -5,6 +5,7 @@
#ifndef CONTENT_BROWSER_RENDERER_HOST_INPUT_SYNTHETIC_POINTER_ACTION_H_
#define CONTENT_BROWSER_RENDERER_HOST_INPUT_SYNTHETIC_POINTER_ACTION_H_
+#include <array>
#include "base/macros.h"
#include "content/browser/renderer_host/input/synthetic_gesture.h"
#include "content/browser/renderer_host/input/synthetic_gesture_target.h"
@@ -12,25 +13,51 @@
#include "content/common/content_export.h"
#include "content/common/input/synthetic_pointer_action_params.h"
+using blink::WebTouchEvent;
+
namespace content {
class CONTENT_EXPORT SyntheticPointerAction : public SyntheticGesture {
public:
- explicit SyntheticPointerAction(const SyntheticPointerActionParams& params);
- SyntheticPointerAction(const SyntheticPointerActionParams& params,
- SyntheticPointer* synthetic_pointer);
+ using IndexMap = std::array<int, WebTouchEvent::touchesLengthCap>;
+
+ SyntheticPointerAction(
+ std::unique_ptr<std::vector<SyntheticPointerActionParams>> param_list,
+ SyntheticPointer* synthetic_pointer,
+ IndexMap* index_map);
~SyntheticPointerAction() override;
SyntheticGesture::Result ForwardInputEvents(
const base::TimeTicks& timestamp,
SyntheticGestureTarget* target) override;
- void ForwardTouchOrMouseInputEvents(const base::TimeTicks& timestamp,
- SyntheticGestureTarget* target);
-
private:
- SyntheticPointerActionParams params_;
+ explicit SyntheticPointerAction(const SyntheticPointerActionParams& params);
+ SyntheticGesture::Result ForwardTouchOrMouseInputEvents(
+ const base::TimeTicks& timestamp,
+ SyntheticGestureTarget* target);
+ int GetPointIndex(int index) const { return (*index_map_)[index]; }
+ void SetPointIndex(int index, int point_index) {
+ (*index_map_)[index] = point_index;
+ }
+
+ // Check if the user inputs in the SyntheticPointerActionParams can generate
+ // a valid sequence of pointer actions.
+ bool UserInputCheck(const SyntheticPointerActionParams& params);
+
+ // SyntheticGestureController is responsible to create the
+ // SyntheticPointerActions and control when to forward them.
+ // This will be passed from SyntheticGestureController, which will reset its
+ // value to push a new batch of action parameters.
+ // This contains a list of pointer actions which will be dispatched together.
+ const std::unique_ptr<std::vector<SyntheticPointerActionParams>> param_list_;
+ // These two objects will be owned by SyntheticGestureController, which
+ // will manage their lifetime by initiating them when it starts processing a
+ // pointer action sequence and resetting them when it finishes.
SyntheticPointer* synthetic_pointer_;
+ IndexMap* index_map_;
+
+ SyntheticPointerActionParams params_;
DISALLOW_COPY_AND_ASSIGN(SyntheticPointerAction);
};

Powered by Google App Engine
This is Rietveld 408576698