OLD | NEW |
---|---|
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "services/ui/ws/window_manager_state.h" | 5 #include "services/ui/ws/window_manager_state.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/memory/weak_ptr.h" | 10 #include "base/memory/weak_ptr.h" |
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
283 // The tree is no longer active, so no point in dispatching any further | 283 // The tree is no longer active, so no point in dispatching any further |
284 // events. | 284 // events. |
285 std::queue<std::unique_ptr<QueuedEvent>> event_queue; | 285 std::queue<std::unique_ptr<QueuedEvent>> event_queue; |
286 event_queue.swap(event_queue_); | 286 event_queue.swap(event_queue_); |
287 } | 287 } |
288 | 288 |
289 void WindowManagerState::ProcessEvent(const ui::Event& event, | 289 void WindowManagerState::ProcessEvent(const ui::Event& event, |
290 int64_t display_id) { | 290 int64_t display_id) { |
291 // If this is still waiting for an ack from a previously sent event, then | 291 // If this is still waiting for an ack from a previously sent event, then |
292 // queue up the event to be dispatched once the ack is received. | 292 // queue up the event to be dispatched once the ack is received. |
293 if (in_flight_event_details_) { | 293 if (in_flight_event_details_ || event_dispatcher_.HittestInFlight()) { |
sky
2017/05/15 21:20:23
The code you have here will only work if EventDisp
riajiang
2017/05/17 02:01:59
Actually I was looking at |in_flight_event_details
sky
2017/05/17 18:14:43
in_flight_event_details_ is only created from call
riajiang
2017/05/19 16:49:30
I ended up keeping event_dispatcher_.IsHitTestInFl
| |
294 if (!event_queue_.empty() && !event_queue_.back()->processed_target && | 294 if (!event_queue_.empty() && !event_queue_.back()->processed_target && |
295 EventsCanBeCoalesced(*event_queue_.back()->event, event)) { | 295 EventsCanBeCoalesced(*event_queue_.back()->event, event)) { |
296 event_queue_.back()->event = CoalesceEvents( | 296 event_queue_.back()->event = CoalesceEvents( |
297 std::move(event_queue_.back()->event), ui::Event::Clone(event)); | 297 std::move(event_queue_.back()->event), ui::Event::Clone(event)); |
298 event_queue_.back()->display_id = display_id; | 298 event_queue_.back()->display_id = display_id; |
299 return; | 299 return; |
300 } | 300 } |
301 QueueEvent(event, nullptr, display_id); | 301 QueueEvent(event, nullptr, display_id); |
302 return; | 302 return; |
303 } | 303 } |
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
712 window->RemoveObserver(this); | 712 window->RemoveObserver(this); |
713 orphaned_window_manager_display_roots_.erase(iter); | 713 orphaned_window_manager_display_roots_.erase(iter); |
714 return; | 714 return; |
715 } | 715 } |
716 } | 716 } |
717 NOTREACHED(); | 717 NOTREACHED(); |
718 } | 718 } |
719 | 719 |
720 } // namespace ws | 720 } // namespace ws |
721 } // namespace ui | 721 } // namespace ui |
OLD | NEW |