OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "chrome/browser/renderer_host/render_widget_host_view_win.h" | 5 #include "chrome/browser/renderer_host/render_widget_host_view_win.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/i18n/rtl.h" | 10 #include "base/i18n/rtl.h" |
(...skipping 1725 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1736 TOOLTIPS_CLASS, NULL, TTS_NOPREFIX, 0, 0, 0, 0, m_hWnd, NULL, | 1736 TOOLTIPS_CLASS, NULL, TTS_NOPREFIX, 0, 0, 0, 0, m_hWnd, NULL, |
1737 NULL, NULL); | 1737 NULL, NULL); |
1738 if (!tooltip_hwnd_) { | 1738 if (!tooltip_hwnd_) { |
1739 // Tooltip creation can inexplicably fail. See bug 82913 for details. | 1739 // Tooltip creation can inexplicably fail. See bug 82913 for details. |
1740 LOG_GETLASTERROR(WARNING) << | 1740 LOG_GETLASTERROR(WARNING) << |
1741 "Tooltip creation failed, tooltips won't work"; | 1741 "Tooltip creation failed, tooltips won't work"; |
1742 return; | 1742 return; |
1743 } | 1743 } |
1744 ti.uFlags = TTF_TRANSPARENT; | 1744 ti.uFlags = TTF_TRANSPARENT; |
1745 ti.lpszText = LPSTR_TEXTCALLBACK; | 1745 ti.lpszText = LPSTR_TEXTCALLBACK; |
| 1746 |
| 1747 // Ensure web content tooltips are displayed for at least this amount of |
| 1748 // time, to give users a chance to read longer messages. |
| 1749 const int kMinimumAutopopDurationMs = 10 * 1000; |
| 1750 int autopop_duration_ms = |
| 1751 SendMessage(tooltip_hwnd_, TTM_GETDELAYTIME, TTDT_AUTOPOP, NULL); |
| 1752 if (autopop_duration_ms < kMinimumAutopopDurationMs) { |
| 1753 SendMessage(tooltip_hwnd_, TTM_SETDELAYTIME, TTDT_AUTOPOP, |
| 1754 kMinimumAutopopDurationMs); |
| 1755 } |
1746 } | 1756 } |
1747 | 1757 |
1748 CRect cr; | 1758 CRect cr; |
1749 GetClientRect(&ti.rect); | 1759 GetClientRect(&ti.rect); |
1750 SendMessage(tooltip_hwnd_, message, NULL, reinterpret_cast<LPARAM>(&ti)); | 1760 SendMessage(tooltip_hwnd_, message, NULL, reinterpret_cast<LPARAM>(&ti)); |
1751 } | 1761 } |
1752 | 1762 |
1753 void RenderWidgetHostViewWin::ResetTooltip() { | 1763 void RenderWidgetHostViewWin::ResetTooltip() { |
1754 if (::IsWindow(tooltip_hwnd_)) | 1764 if (::IsWindow(tooltip_hwnd_)) |
1755 ::DestroyWindow(tooltip_hwnd_); | 1765 ::DestroyWindow(tooltip_hwnd_); |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1819 DWORD ex_style) { | 1829 DWORD ex_style) { |
1820 parent_hwnd_ = parent_hwnd; | 1830 parent_hwnd_ = parent_hwnd; |
1821 Create(parent_hwnd_, NULL, NULL, WS_POPUP, ex_style); | 1831 Create(parent_hwnd_, NULL, NULL, WS_POPUP, ex_style); |
1822 MoveWindow(pos.x(), pos.y(), pos.width(), pos.height(), TRUE); | 1832 MoveWindow(pos.x(), pos.y(), pos.width(), pos.height(), TRUE); |
1823 // To show tooltip on popup window.(e.g. title in <select>) | 1833 // To show tooltip on popup window.(e.g. title in <select>) |
1824 // Popups default to showing, which means |DidBecomeSelected()| isn't invoked. | 1834 // Popups default to showing, which means |DidBecomeSelected()| isn't invoked. |
1825 // Ensure the tooltip is created otherwise tooltips are never shown. | 1835 // Ensure the tooltip is created otherwise tooltips are never shown. |
1826 EnsureTooltip(); | 1836 EnsureTooltip(); |
1827 ShowWindow(IsActivatable() ? SW_SHOW : SW_SHOWNA); | 1837 ShowWindow(IsActivatable() ? SW_SHOW : SW_SHOWNA); |
1828 } | 1838 } |
OLD | NEW |