| OLD | NEW |
| 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 "ui/aura/mus/window_tree_client.h" | 5 #include "ui/aura/mus/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 26 matching lines...) Expand all Loading... |
| 37 #include "ui/aura/mus/window_mus.h" | 37 #include "ui/aura/mus/window_mus.h" |
| 38 #include "ui/aura/mus/window_port_mus.h" | 38 #include "ui/aura/mus/window_port_mus.h" |
| 39 #include "ui/aura/mus/window_tree_client_delegate.h" | 39 #include "ui/aura/mus/window_tree_client_delegate.h" |
| 40 #include "ui/aura/mus/window_tree_client_observer.h" | 40 #include "ui/aura/mus/window_tree_client_observer.h" |
| 41 #include "ui/aura/mus/window_tree_client_test_observer.h" | 41 #include "ui/aura/mus/window_tree_client_test_observer.h" |
| 42 #include "ui/aura/mus/window_tree_host_mus.h" | 42 #include "ui/aura/mus/window_tree_host_mus.h" |
| 43 #include "ui/aura/window.h" | 43 #include "ui/aura/window.h" |
| 44 #include "ui/aura/window_delegate.h" | 44 #include "ui/aura/window_delegate.h" |
| 45 #include "ui/aura/window_tracker.h" | 45 #include "ui/aura/window_tracker.h" |
| 46 #include "ui/base/ui_base_types.h" | 46 #include "ui/base/ui_base_types.h" |
| 47 #include "ui/compositor/compositor.h" |
| 47 #include "ui/display/display.h" | 48 #include "ui/display/display.h" |
| 48 #include "ui/display/screen.h" | 49 #include "ui/display/screen.h" |
| 49 #include "ui/events/event.h" | 50 #include "ui/events/event.h" |
| 50 #include "ui/gfx/geometry/dip_util.h" | 51 #include "ui/gfx/geometry/dip_util.h" |
| 51 #include "ui/gfx/geometry/insets.h" | 52 #include "ui/gfx/geometry/insets.h" |
| 52 #include "ui/gfx/geometry/size.h" | 53 #include "ui/gfx/geometry/size.h" |
| 53 | 54 |
| 54 #if defined(HiWord) | 55 #if defined(HiWord) |
| 55 #undef HiWord | 56 #undef HiWord |
| 56 #endif | 57 #endif |
| (...skipping 1068 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1125 if (!window || !window->GetWindow()->GetHost()) { | 1126 if (!window || !window->GetWindow()->GetHost()) { |
| 1126 tree_->OnWindowInputEventAck(event_id, ui::mojom::EventResult::UNHANDLED); | 1127 tree_->OnWindowInputEventAck(event_id, ui::mojom::EventResult::UNHANDLED); |
| 1127 return; | 1128 return; |
| 1128 } | 1129 } |
| 1129 InputMethodMus* input_method = GetWindowTreeHostMus(window)->input_method(); | 1130 InputMethodMus* input_method = GetWindowTreeHostMus(window)->input_method(); |
| 1130 input_method->DispatchKeyEvent(event->AsKeyEvent(), | 1131 input_method->DispatchKeyEvent(event->AsKeyEvent(), |
| 1131 CreateEventResultCallback(event_id)); | 1132 CreateEventResultCallback(event_id)); |
| 1132 return; | 1133 return; |
| 1133 } | 1134 } |
| 1134 | 1135 |
| 1136 // Mus sends screen coordinates, need to convert to DIPs. |
| 1137 if (event->IsLocatedEvent() && !roots_.empty()) { |
| 1138 // TODO: this isn't right, we need to find the matching host and use it's |
| 1139 // scale. |
| 1140 const float scale_factor = (*roots_.begin()) |
| 1141 ->GetWindow() |
| 1142 ->GetHost() |
| 1143 ->compositor() |
| 1144 ->device_scale_factor(); |
| 1145 if (scale_factor != 1) { |
| 1146 gfx::Point host_location = gfx::ConvertPointToDIP( |
| 1147 scale_factor, event->AsLocatedEvent()->location()); |
| 1148 event->AsLocatedEvent()->set_location(host_location); |
| 1149 gfx::Point root_location = gfx::ConvertPointToDIP( |
| 1150 scale_factor, event->AsLocatedEvent()->root_location()); |
| 1151 event->AsLocatedEvent()->set_root_location(root_location); |
| 1152 } |
| 1153 } |
| 1154 |
| 1135 if (matches_pointer_watcher && has_pointer_watcher_) { | 1155 if (matches_pointer_watcher && has_pointer_watcher_) { |
| 1136 DCHECK(event->IsPointerEvent()); | 1156 DCHECK(event->IsPointerEvent()); |
| 1137 delegate_->OnPointerEventObserved(*event->AsPointerEvent(), | 1157 delegate_->OnPointerEventObserved(*event->AsPointerEvent(), |
| 1138 window ? window->GetWindow() : nullptr); | 1158 window ? window->GetWindow() : nullptr); |
| 1139 } | 1159 } |
| 1140 | 1160 |
| 1141 // TODO: deal with no window or host here. This could happen if during | 1161 // TODO: deal with no window or host here. This could happen if during |
| 1142 // dispatch a window is deleted or moved. In either case we still need to | 1162 // dispatch a window is deleted or moved. In either case we still need to |
| 1143 // dispatch. Most likely need the display id. | 1163 // dispatch. Most likely need the display id. |
| 1144 if (!window || !window->GetWindow()->GetHost()) { | 1164 if (!window || !window->GetWindow()->GetHost()) { |
| (...skipping 673 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1818 return ScheduleInFlightChange(base::MakeUnique<InFlightCaptureChange>( | 1838 return ScheduleInFlightChange(base::MakeUnique<InFlightCaptureChange>( |
| 1819 this, capture_synchronizer_.get(), window)); | 1839 this, capture_synchronizer_.get(), window)); |
| 1820 } | 1840 } |
| 1821 | 1841 |
| 1822 uint32_t WindowTreeClient::CreateChangeIdForFocus(WindowMus* window) { | 1842 uint32_t WindowTreeClient::CreateChangeIdForFocus(WindowMus* window) { |
| 1823 return ScheduleInFlightChange(base::MakeUnique<InFlightFocusChange>( | 1843 return ScheduleInFlightChange(base::MakeUnique<InFlightFocusChange>( |
| 1824 this, focus_synchronizer_.get(), window)); | 1844 this, focus_synchronizer_.get(), window)); |
| 1825 } | 1845 } |
| 1826 | 1846 |
| 1827 } // namespace aura | 1847 } // namespace aura |
| OLD | NEW |