Index: ui/views/widget/tooltip_manager_win.cc |
diff --git a/ui/views/widget/tooltip_manager_win.cc b/ui/views/widget/tooltip_manager_win.cc |
index d90bb367caebe53c4f8a55099adddf0b10718ba5..ed6f4e9bb1a0c6c92d9c1c9798a0dbaea22bc0e0 100644 |
--- a/ui/views/widget/tooltip_manager_win.cc |
+++ b/ui/views/widget/tooltip_manager_win.cc |
@@ -16,6 +16,7 @@ |
#include "base/win/scoped_hdc.h" |
#include "base/win/scoped_select_object.h" |
#include "ui/base/l10n/l10n_util_win.h" |
+#include "ui/base/win/dpi.h" |
#include "ui/base/win/hwnd_util.h" |
#include "ui/base/win/scoped_set_map_mode.h" |
#include "ui/gfx/font.h" |
@@ -29,7 +30,7 @@ namespace views { |
static int tooltip_height_ = 0; |
// Default timeout for the tooltip displayed using keyboard. |
-// Timeout is mentioned in milliseconds. |
+// Timeout is measured in milliseconds. |
static const int kDefaultTimeout = 4000; |
// static |
@@ -226,6 +227,7 @@ bool TooltipManagerWin::SetTooltipPosition(int text_x, int text_y) { |
// Calculate the bounds the tooltip will get. |
gfx::Point view_loc; |
View::ConvertPointToScreen(last_tooltip_view_, &view_loc); |
+ view_loc = ui::win::DIPToScreenPoint(view_loc); |
RECT bounds = { view_loc.x() + text_x, |
view_loc.y() + text_y, |
view_loc.x() + text_x + tooltip_width_, |
@@ -298,13 +300,15 @@ void TooltipManagerWin::UpdateTooltip(const gfx::Point& mouse_pos) { |
} |
void TooltipManagerWin::OnMouse(UINT u_msg, WPARAM w_param, LPARAM l_param) { |
- gfx::Point mouse_pos(l_param); |
+ gfx::Point mouse_pos_in_pixels(l_param); |
+ gfx::Point mouse_pos = ui::win::ScreenToDIPPoint(mouse_pos_in_pixels); |
if (u_msg >= WM_NCMOUSEMOVE && u_msg <= WM_NCXBUTTONDBLCLK) { |
// NC message coordinates are in screen coordinates. |
- POINT temp = mouse_pos.ToPOINT(); |
+ POINT temp = mouse_pos_in_pixels.ToPOINT(); |
::MapWindowPoints(HWND_DESKTOP, GetParent(), &temp, 1); |
- mouse_pos.SetPoint(temp.x, temp.y); |
+ mouse_pos_in_pixels.SetPoint(temp.x, temp.y); |
+ mouse_pos = ui::win::ScreenToDIPPoint(mouse_pos_in_pixels); |
} |
if (u_msg != WM_MOUSEMOVE || last_mouse_pos_ != mouse_pos) { |