Chromium Code Reviews| Index: ui/views/controls/menu/menu_controller.cc |
| diff --git a/ui/views/controls/menu/menu_controller.cc b/ui/views/controls/menu/menu_controller.cc |
| index 87e7ad2ab088321e93ec1edbbb41730936419c88..9c40021e34db17df17cd4a385126dc8f61106bcc 100644 |
| --- a/ui/views/controls/menu/menu_controller.cc |
| +++ b/ui/views/controls/menu/menu_controller.cc |
| @@ -39,6 +39,7 @@ |
| #if defined(OS_WIN) |
| #include "ui/base/win/internal_constants.h" |
| +#include "ui/gfx/win/dpi.h" |
| #include "ui/views/win/hwnd_util.h" |
| #endif |
| @@ -2052,6 +2053,10 @@ void MenuController::RepostEvent(SubmenuView* source, |
| gfx::NativeWindow window = screen->GetWindowAtScreenPoint(screen_loc); |
|
sky
2014/06/18 13:15:59
Move this so that we only call GetWindowAtScreenPo
ananta
2014/06/18 18:53:40
Added a function PlatformGetWindowAtLocation in th
|
| #if defined(OS_WIN) |
| + // While posting messages natively on Windows we need to convert the |
| + // coordinates to pixel to ensure that they get posted to the correct window. |
| + screen_loc = gfx::win::DIPToScreenPoint(screen_loc); |
| + window = screen->GetWindowAtScreenPoint(screen_loc); |
| // PostMessage() to metro windows isn't allowed (access will be denied). Don't |
| // try to repost with Win32 if the window under the mouse press is in metro. |
| if (!ViewsDelegate::views_delegate || |
| @@ -2068,7 +2073,6 @@ void MenuController::RepostEvent(SubmenuView* source, |
| // else double events can occur and lead to bad behavior. |
| return; |
| } |
| - |
| // Determine whether the click was in the client area or not. |
| // NOTE: WM_NCHITTEST coordinates are relative to the screen. |
| LPARAM coords = MAKELPARAM(screen_loc.x(), screen_loc.y()); |