OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/views/controls/menu/menu_controller.h" | 5 #include "ui/views/controls/menu/menu_controller.h" |
6 | 6 |
7 #include "base/i18n/case_conversion.h" | 7 #include "base/i18n/case_conversion.h" |
8 #include "base/i18n/rtl.h" | 8 #include "base/i18n/rtl.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "base/time/time.h" | 10 #include "base/time/time.h" |
(...skipping 2241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2252 } | 2252 } |
2253 View* active_mouse_view = GetActiveMouseView(); | 2253 View* active_mouse_view = GetActiveMouseView(); |
2254 if (target != active_mouse_view) { | 2254 if (target != active_mouse_view) { |
2255 SendMouseCaptureLostToActiveView(); | 2255 SendMouseCaptureLostToActiveView(); |
2256 active_mouse_view = target; | 2256 active_mouse_view = target; |
2257 SetActiveMouseView(active_mouse_view); | 2257 SetActiveMouseView(active_mouse_view); |
2258 if (active_mouse_view) { | 2258 if (active_mouse_view) { |
2259 gfx::Point target_point(target_menu_loc); | 2259 gfx::Point target_point(target_menu_loc); |
2260 View::ConvertPointToTarget( | 2260 View::ConvertPointToTarget( |
2261 target_menu, active_mouse_view, &target_point); | 2261 target_menu, active_mouse_view, &target_point); |
2262 ui::MouseEvent mouse_entered_event(ui::ET_MOUSE_ENTERED, target_point, | 2262 ui::MouseEvent mouse_entered_event( |
2263 target_point, ui::EventTimeForNow(), 0, | 2263 ui::ET_MOUSE_ENTERED, target_point, target_point, |
2264 0); | 2264 ui::EventTimeForNow(), 0, 0, |
| 2265 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
2265 active_mouse_view->OnMouseEntered(mouse_entered_event); | 2266 active_mouse_view->OnMouseEntered(mouse_entered_event); |
2266 | 2267 |
2267 ui::MouseEvent mouse_pressed_event( | 2268 ui::MouseEvent mouse_pressed_event( |
2268 ui::ET_MOUSE_PRESSED, target_point, target_point, | 2269 ui::ET_MOUSE_PRESSED, target_point, target_point, |
2269 ui::EventTimeForNow(), event.flags(), event.changed_button_flags()); | 2270 ui::EventTimeForNow(), event.flags(), event.changed_button_flags(), |
| 2271 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
2270 active_mouse_view->OnMousePressed(mouse_pressed_event); | 2272 active_mouse_view->OnMousePressed(mouse_pressed_event); |
2271 } | 2273 } |
2272 } | 2274 } |
2273 | 2275 |
2274 if (active_mouse_view) { | 2276 if (active_mouse_view) { |
2275 gfx::Point target_point(target_menu_loc); | 2277 gfx::Point target_point(target_menu_loc); |
2276 View::ConvertPointToTarget(target_menu, active_mouse_view, &target_point); | 2278 View::ConvertPointToTarget(target_menu, active_mouse_view, &target_point); |
2277 ui::MouseEvent mouse_dragged_event( | 2279 ui::MouseEvent mouse_dragged_event( |
2278 ui::ET_MOUSE_DRAGGED, target_point, target_point, ui::EventTimeForNow(), | 2280 ui::ET_MOUSE_DRAGGED, target_point, target_point, ui::EventTimeForNow(), |
2279 event.flags(), event.changed_button_flags()); | 2281 event.flags(), event.changed_button_flags(), |
| 2282 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
2280 active_mouse_view->OnMouseDragged(mouse_dragged_event); | 2283 active_mouse_view->OnMouseDragged(mouse_dragged_event); |
2281 } | 2284 } |
2282 } | 2285 } |
2283 | 2286 |
2284 void MenuController::SendMouseReleaseToActiveView(SubmenuView* event_source, | 2287 void MenuController::SendMouseReleaseToActiveView(SubmenuView* event_source, |
2285 const ui::MouseEvent& event) { | 2288 const ui::MouseEvent& event) { |
2286 View* active_mouse_view = GetActiveMouseView(); | 2289 View* active_mouse_view = GetActiveMouseView(); |
2287 if (!active_mouse_view) | 2290 if (!active_mouse_view) |
2288 return; | 2291 return; |
2289 | 2292 |
2290 gfx::Point target_loc(event.location()); | 2293 gfx::Point target_loc(event.location()); |
2291 View::ConvertPointToScreen(event_source->GetScrollViewContainer(), | 2294 View::ConvertPointToScreen(event_source->GetScrollViewContainer(), |
2292 &target_loc); | 2295 &target_loc); |
2293 View::ConvertPointFromScreen(active_mouse_view, &target_loc); | 2296 View::ConvertPointFromScreen(active_mouse_view, &target_loc); |
2294 ui::MouseEvent release_event(ui::ET_MOUSE_RELEASED, target_loc, target_loc, | 2297 ui::MouseEvent release_event( |
2295 ui::EventTimeForNow(), event.flags(), | 2298 ui::ET_MOUSE_RELEASED, target_loc, target_loc, ui::EventTimeForNow(), |
2296 event.changed_button_flags()); | 2299 event.flags(), event.changed_button_flags(), |
| 2300 ui::PointerEventDetails(ui::EventPointerType::POINTER_TYPE_MOUSE)); |
2297 // Reset active mouse view before sending mouse released. That way if it calls | 2301 // Reset active mouse view before sending mouse released. That way if it calls |
2298 // back to us, we aren't in a weird state. | 2302 // back to us, we aren't in a weird state. |
2299 SetActiveMouseView(NULL); | 2303 SetActiveMouseView(NULL); |
2300 active_mouse_view->OnMouseReleased(release_event); | 2304 active_mouse_view->OnMouseReleased(release_event); |
2301 } | 2305 } |
2302 | 2306 |
2303 void MenuController::SendMouseCaptureLostToActiveView() { | 2307 void MenuController::SendMouseCaptureLostToActiveView() { |
2304 View* active_mouse_view = GetActiveMouseView(); | 2308 View* active_mouse_view = GetActiveMouseView(); |
2305 if (!active_mouse_view) | 2309 if (!active_mouse_view) |
2306 return; | 2310 return; |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2374 } | 2378 } |
2375 } | 2379 } |
2376 | 2380 |
2377 gfx::Screen* MenuController::GetScreen() { | 2381 gfx::Screen* MenuController::GetScreen() { |
2378 Widget* root = owner_ ? owner_->GetTopLevelWidget() : NULL; | 2382 Widget* root = owner_ ? owner_->GetTopLevelWidget() : NULL; |
2379 return root ? gfx::Screen::GetScreenFor(root->GetNativeView()) | 2383 return root ? gfx::Screen::GetScreenFor(root->GetNativeView()) |
2380 : gfx::Screen::GetNativeScreen(); | 2384 : gfx::Screen::GetNativeScreen(); |
2381 } | 2385 } |
2382 | 2386 |
2383 } // namespace views | 2387 } // namespace views |
OLD | NEW |