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

Side by Side Diff: services/ui/public/cpp/window_tree_client.cc

Issue 2248263003: Updates PointerEventRouter to handle switching move type (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: false- Created 4 years, 4 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/public/cpp/window_tree_client.h" 5 #include "services/ui/public/cpp/window_tree_client.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 614 matching lines...) Expand 10 before | Expand all | Expand 10 after
625 base::subtle::Atomic32 location = 625 base::subtle::Atomic32 location =
626 base::subtle::NoBarrier_Load(cursor_location_memory()); 626 base::subtle::NoBarrier_Load(cursor_location_memory());
627 return gfx::Point(static_cast<int16_t>(location >> 16), 627 return gfx::Point(static_cast<int16_t>(location >> 16),
628 static_cast<int16_t>(location & 0xFFFF)); 628 static_cast<int16_t>(location & 0xFFFF));
629 } 629 }
630 630
631 void WindowTreeClient::StartPointerWatcher(bool want_moves) { 631 void WindowTreeClient::StartPointerWatcher(bool want_moves) {
632 if (has_pointer_watcher_) 632 if (has_pointer_watcher_)
633 StopPointerWatcher(); 633 StopPointerWatcher();
634 has_pointer_watcher_ = true; 634 has_pointer_watcher_ = true;
635 pointer_watcher_id_++; 635 tree_->StartPointerWatcher(want_moves);
636 if (pointer_watcher_id_ == 0)
637 pointer_watcher_id_++;
638 tree_->StartPointerWatcher(want_moves, pointer_watcher_id_);
639 } 636 }
640 637
641 void WindowTreeClient::StopPointerWatcher() { 638 void WindowTreeClient::StopPointerWatcher() {
642 DCHECK(has_pointer_watcher_); 639 DCHECK(has_pointer_watcher_);
643 tree_->StopPointerWatcher(); 640 tree_->StopPointerWatcher();
644 has_pointer_watcher_ = false; 641 has_pointer_watcher_ = false;
645 } 642 }
646 643
647 void WindowTreeClient::PerformWindowMove( 644 void WindowTreeClient::PerformWindowMove(
648 Window* window, 645 Window* window,
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
974 InFlightPropertyChange new_change(window, name, new_data); 971 InFlightPropertyChange new_change(window, name, new_data);
975 if (ApplyServerChangeToExistingInFlightChange(new_change)) 972 if (ApplyServerChangeToExistingInFlightChange(new_change))
976 return; 973 return;
977 974
978 WindowPrivate(window).LocalSetSharedProperty(name, std::move(new_data)); 975 WindowPrivate(window).LocalSetSharedProperty(name, std::move(new_data));
979 } 976 }
980 977
981 void WindowTreeClient::OnWindowInputEvent(uint32_t event_id, 978 void WindowTreeClient::OnWindowInputEvent(uint32_t event_id,
982 Id window_id, 979 Id window_id,
983 std::unique_ptr<ui::Event> event, 980 std::unique_ptr<ui::Event> event,
984 uint32_t pointer_watcher_id) { 981 bool matches_pointer_watcher) {
985 DCHECK(event); 982 DCHECK(event);
986 Window* window = GetWindowByServerId(window_id); // May be null. 983 Window* window = GetWindowByServerId(window_id); // May be null.
987 984
988 // Non-zero pointer_watcher_id means it matched a pointer watcher on the 985 // Non-zero pointer_watcher_id means it matched a pointer watcher on the
msw 2016/08/18 22:45:23 nit: update comment
sky 2016/08/18 23:17:14 I just removed the comment as the code isn't parti
989 // server. 986 // server.
990 if (pointer_watcher_id_ != 0 && has_pointer_watcher_ && 987 if (matches_pointer_watcher && has_pointer_watcher_) {
991 pointer_watcher_id == pointer_watcher_id_) {
992 DCHECK(event->IsPointerEvent()); 988 DCHECK(event->IsPointerEvent());
993 delegate_->OnPointerEventObserved(*event->AsPointerEvent(), window); 989 delegate_->OnPointerEventObserved(*event->AsPointerEvent(), window);
994 } 990 }
995 991
996 if (!window || !window->input_event_handler_) { 992 if (!window || !window->input_event_handler_) {
997 tree_->OnWindowInputEventAck(event_id, mojom::EventResult::UNHANDLED); 993 tree_->OnWindowInputEventAck(event_id, mojom::EventResult::UNHANDLED);
998 return; 994 return;
999 } 995 }
1000 996
1001 std::unique_ptr<base::Callback<void(mojom::EventResult)>> ack_callback( 997 std::unique_ptr<base::Callback<void(mojom::EventResult)>> ack_callback(
(...skipping 14 matching lines...) Expand all
1016 &ack_callback); 1012 &ack_callback);
1017 } 1013 }
1018 1014
1019 // The handler did not take ownership of the callback, so we send the ack, 1015 // The handler did not take ownership of the callback, so we send the ack,
1020 // marking the event as not consumed. 1016 // marking the event as not consumed.
1021 if (ack_callback) 1017 if (ack_callback)
1022 ack_callback->Run(mojom::EventResult::UNHANDLED); 1018 ack_callback->Run(mojom::EventResult::UNHANDLED);
1023 } 1019 }
1024 1020
1025 void WindowTreeClient::OnPointerEventObserved(std::unique_ptr<ui::Event> event, 1021 void WindowTreeClient::OnPointerEventObserved(std::unique_ptr<ui::Event> event,
1026 uint32_t pointer_watcher_id,
1027 uint32_t window_id) { 1022 uint32_t window_id) {
1028 DCHECK(event); 1023 DCHECK(event);
1029 DCHECK(event->IsPointerEvent()); 1024 DCHECK(event->IsPointerEvent());
1030 if (has_pointer_watcher_ && pointer_watcher_id == pointer_watcher_id_) { 1025 if (has_pointer_watcher_) {
1031 Window* target_window = GetWindowByServerId(window_id); 1026 Window* target_window = GetWindowByServerId(window_id);
1032 delegate_->OnPointerEventObserved(*event->AsPointerEvent(), target_window); 1027 delegate_->OnPointerEventObserved(*event->AsPointerEvent(), target_window);
1033 } 1028 }
1034 } 1029 }
1035 1030
1036 void WindowTreeClient::OnWindowFocused(Id focused_window_id) { 1031 void WindowTreeClient::OnWindowFocused(Id focused_window_id) {
1037 Window* focused_window = GetWindowByServerId(focused_window_id); 1032 Window* focused_window = GetWindowByServerId(focused_window_id);
1038 InFlightFocusChange new_change(this, focused_window); 1033 InFlightFocusChange new_change(this, focused_window);
1039 if (ApplyServerChangeToExistingInFlightChange(new_change)) 1034 if (ApplyServerChangeToExistingInFlightChange(new_change))
1040 return; 1035 return;
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
1265 Window* window, 1260 Window* window,
1266 const gfx::Vector2d& offset, 1261 const gfx::Vector2d& offset,
1267 const gfx::Insets& hit_area) { 1262 const gfx::Insets& hit_area) {
1268 if (window_manager_internal_client_) { 1263 if (window_manager_internal_client_) {
1269 window_manager_internal_client_->SetUnderlaySurfaceOffsetAndExtendedHitArea( 1264 window_manager_internal_client_->SetUnderlaySurfaceOffsetAndExtendedHitArea(
1270 server_id(window), offset.x(), offset.y(), hit_area); 1265 server_id(window), offset.x(), offset.y(), hit_area);
1271 } 1266 }
1272 } 1267 }
1273 1268
1274 } // namespace ui 1269 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698