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 38a5e81e8e7e1a84406f23801e670a20771596bb..41044469c4d287a7a1d237de74e3bb0f78a323d5 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 |
@@ -2051,6 +2052,10 @@ void MenuController::RepostEvent(SubmenuView* source, |
gfx::NativeWindow window = screen->GetWindowAtScreenPoint(screen_loc); |
#if defined(OS_WIN) |
+ // Convert screen_loc to pixels for the Win32 API's like WindowFromPoint, |
+ // PostMessage/SendMessage to work correctly. These API's expect the |
+ // coordinates to be in pixels. |
+ screen_loc = gfx::win::DIPToScreenPoint(screen_loc); |
sky
2014/06/19 00:55:12
Don't reuse screen_loc here, it's too easy to get
ananta
2014/06/19 01:44:18
Done.
|
// 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 || |