| Index: ui/views/win/hwnd_message_handler.h
|
| diff --git a/ui/views/win/hwnd_message_handler.h b/ui/views/win/hwnd_message_handler.h
|
| index 083f17181cf926c7cecf34bf4709cf9511543791..b5d712bf7d4369000d814c83a56db2fa587e90d1 100644
|
| --- a/ui/views/win/hwnd_message_handler.h
|
| +++ b/ui/views/win/hwnd_message_handler.h
|
| @@ -7,7 +7,7 @@
|
|
|
| #include <windows.h>
|
|
|
| -#include <array>
|
| +#include <set>
|
| #include <vector>
|
|
|
| #include "base/basictypes.h"
|
| @@ -21,7 +21,6 @@
|
| #include "ui/base/ui_base_types.h"
|
| #include "ui/base/win/window_event_target.h"
|
| #include "ui/events/event.h"
|
| -#include "ui/events/gesture_detection/motion_event.h"
|
| #include "ui/gfx/geometry/rect.h"
|
| #include "ui/gfx/sequential_id_generator.h"
|
| #include "ui/gfx/win/window_impl.h"
|
| @@ -207,26 +206,7 @@
|
| void SizeConstraintsChanged();
|
|
|
| private:
|
| - FRIEND_TEST_ALL_PREFIXES(HWNDMessageHandler, TestCorrectTouchInputList);
|
| - FRIEND_TEST_ALL_PREFIXES(HWNDMessageHandler, TestCombineTouchMoveAndUp);
|
| - FRIEND_TEST_ALL_PREFIXES(HWNDMessageHandler, TestMissingTouchRelease);
|
| -
|
| - // We use InTouchList self-defined type to specify if the touch point from
|
| - // last message is in the current message or not.
|
| - enum class InTouchList { NotPresent, InPreviousMessage, InCurrentMessage };
|
| -
|
| - // We need the touch location to release a touch point which is not in the
|
| - // current message.
|
| - struct TouchPoint {
|
| - gfx::Point location;
|
| - InTouchList in_touch_list;
|
| -
|
| - TouchPoint() : in_touch_list(InTouchList::NotPresent) {}
|
| - };
|
| -
|
| - using TouchEvents = std::vector<ui::TouchEvent>;
|
| - using TouchPointArray =
|
| - std::array<TouchPoint, ui::MotionEvent::MAX_TOUCH_POINT_COUNT>;
|
| + typedef std::set<DWORD> TouchIDs;
|
|
|
| // Overridden from internal::InputMethodDelegate:
|
| void DispatchKeyEventPostIME(const ui::KeyEvent& key) override;
|
| @@ -473,6 +453,7 @@
|
| // Receives Windows Session Change notifications.
|
| void OnSessionChange(WPARAM status_code);
|
|
|
| + typedef std::vector<ui::TouchEvent> TouchEvents;
|
| // Helper to handle the list of touch events passed in. We need this because
|
| // touch events on windows don't fire if we enter a modal loop in the context
|
| // of a touch event.
|
| @@ -480,7 +461,7 @@
|
|
|
| // Resets the flag which indicates that we are in the context of a touch down
|
| // event.
|
| - void DecrementTouchDownContext(int decrement);
|
| + void ResetTouchDownContext();
|
|
|
| // Helper to handle mouse events.
|
| // The |message|, |w_param|, |l_param| parameters identify the Windows mouse
|
| @@ -503,23 +484,6 @@
|
| // Provides functionality to transition a frame to DWM.
|
| void PerformDwmTransition();
|
|
|
| - void PrepareTouchEventList(TOUCHINPUT input[],
|
| - int num_points,
|
| - TouchEvents* touch_events);
|
| -
|
| - // From one WM_TOUCH message, we will generate corresponding touch events.
|
| - void GenerateTouchEvent(DWORD input_dwID,
|
| - const gfx::Point& point_location,
|
| - ui::EventType touch_event_type,
|
| - TouchEvents* touch_events);
|
| -
|
| - // It will release the touch points which are no longer in the current message
|
| - // because the messages are sent inconsistently, and also set the touch points
|
| - // we have seen in the current message to be InPreviousMessage.
|
| - void UpdateTouchPointStates(TouchEvents* touch_events);
|
| -
|
| - const TouchPointArray& touch_id_list() const { return touch_id_list_; }
|
| -
|
| HWNDMessageHandlerDelegate* delegate_;
|
|
|
| scoped_ptr<FullscreenHandler> fullscreen_handler_;
|
| @@ -552,6 +516,9 @@
|
| // Set to true when the user presses the right mouse button on the caption
|
| // area. We need this so we can correctly show the context menu on mouse-up.
|
| bool is_right_mouse_pressed_on_caption_;
|
| +
|
| + // The set of touch devices currently down.
|
| + TouchIDs touch_ids_;
|
|
|
| // ScopedRedrawLock ----------------------------------------------------------
|
|
|
| @@ -621,16 +588,6 @@
|
| // Manages observation of Windows Session Change messages.
|
| scoped_ptr<WindowsSessionChangeObserver> windows_session_change_observer_;
|
|
|
| - // HWND Message sometimes sends inconsistent number of touch pointers, so we
|
| - // keep the IDs of touch pointers we have seen from last message, and compare
|
| - // with the current message in order to release the ones which are not in the
|
| - // current list, or send a touchpress when we see a new touch point. The
|
| - // index of the array is the touch_ID.
|
| - TouchPointArray touch_id_list_;
|
| -
|
| - // Keep the count of the current active touch points.
|
| - int active_touch_point_count_;
|
| -
|
| // The WeakPtrFactories below must occur last in the class definition so they
|
| // get destroyed last.
|
|
|
|
|