Index: ui/events/x/touch_factory_x11.h |
diff --git a/ui/events/x/touch_factory_x11.h b/ui/events/x/touch_factory_x11.h |
index 4d8a989fd8f87fe20a68a3c89e6a990ad5c6abaf..051f3de0bc04057cf2e58a89faad542fd7785623 100644 |
--- a/ui/events/x/touch_factory_x11.h |
+++ b/ui/events/x/touch_factory_x11.h |
@@ -68,6 +68,10 @@ class EVENTS_BASE_EXPORT TouchFactory { |
// isn't one already, allocates a new slot ID and sets up the mapping. |
int GetSlotForTrackingID(uint32 tracking_id); |
+ // Increases the number of times |ReleaseSlotForTrackingID| needs to be called |
+ // on a given tracking id before it will actually be released. |
+ void AcquireSlotForTrackingID(uint32 tracking_id); |
+ |
// Releases the slot ID mapping to tracking ID. |
void ReleaseSlotForTrackingID(uint32 tracking_id); |
@@ -130,6 +134,10 @@ class EVENTS_BASE_EXPORT TouchFactory { |
// Touch screen <vid, pid>s. |
std::set<std::pair<int, int> > touchscreen_ids_; |
+ // Maps from a tracking id to the number of times |ReleaseSlotForTrackingID| |
+ // must be called before the tracking id is released. |
+ std::map<uint32, int> tracking_id_refcounts_; |
+ |
// Maximum simultaneous touch points supported by device. In the case of |
// devices with multiple digitizers (e.g. multiple touchscreens), the value |
// is the maximum of the set of maximum supported contacts by each individual |