summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/render_widget_host_view_win.cc32
-rw-r--r--chrome/browser/render_widget_host_view_win.h8
2 files changed, 19 insertions, 21 deletions
diff --git a/chrome/browser/render_widget_host_view_win.cc b/chrome/browser/render_widget_host_view_win.cc
index ab9275a..3b2e961 100644
--- a/chrome/browser/render_widget_host_view_win.cc
+++ b/chrome/browser/render_widget_host_view_win.cc
@@ -67,8 +67,8 @@ RenderWidgetHostView* RenderWidgetHostView::CreateViewForWidget(
RenderWidgetHostViewWin::RenderWidgetHostViewWin(RenderWidgetHost* widget)
: render_widget_host_(widget),
- real_cursor_(LoadCursor(NULL, IDC_ARROW)),
- real_cursor_type_(WebCursor::ARROW),
+ cursor_(LoadCursor(NULL, IDC_ARROW)),
+ cursor_is_custom_(false),
track_mouse_leave_(false),
ime_notification_(false),
is_hidden_(false),
@@ -85,8 +85,8 @@ RenderWidgetHostViewWin::RenderWidgetHostViewWin(RenderWidgetHost* widget)
}
RenderWidgetHostViewWin::~RenderWidgetHostViewWin() {
- if (real_cursor_type_ == WebCursor::CUSTOM)
- DestroyIcon(real_cursor_);
+ if (cursor_is_custom_)
+ DestroyIcon(cursor_);
ResetTooltip();
}
@@ -222,35 +222,33 @@ void RenderWidgetHostViewWin::UpdateCursor(const WebCursor& cursor) {
// If the last active cursor was a custom cursor, we need to destroy
// it before setting the new one.
- if (real_cursor_type_ == WebCursor::CUSTOM)
- DestroyIcon(real_cursor_);
+ if (cursor_is_custom_)
+ DestroyIcon(cursor_);
- real_cursor_type_ = cursor.type();
- if (real_cursor_type_ == cursor.WebCursor::CUSTOM) {
- real_cursor_ = cursor.GetCustomCursor();
+ cursor_is_custom_ = cursor.IsCustom();
+ if (cursor_is_custom_) {
+ cursor_ = cursor.GetCustomCursor();
} else {
// We cannot pass in NULL as the module handle as this would only
// work for standard win32 cursors. We can also receive cursor
// types which are defined as webkit resources. We need to specify
// the module handle of chrome.dll while loading these cursors.
- real_cursor_ = cursor.GetCursor(module_handle);
+ cursor_ = cursor.GetCursor(module_handle);
}
UpdateCursorIfOverSelf();
}
void RenderWidgetHostViewWin::UpdateCursorIfOverSelf() {
- static HINSTANCE module_handle =
- GetModuleHandle(chrome::kBrowserResourcesDll);
+ static HCURSOR kCursorArrow = LoadCursor(NULL, IDC_ARROW);
+ static HCURSOR kCursorAppStarting = LoadCursor(NULL, IDC_APPSTARTING);
- HCURSOR display_cursor = real_cursor_;
+ HCURSOR display_cursor = cursor_;
// If a page is in the loading state, we want to show the Arrow+Hourglass
// cursor only when the current cursor is the ARROW cursor. In all other
// cases we should continue to display the current cursor.
- if (is_loading_ && (real_cursor_type_ == WebCursor::ARROW)) {
- WebCursor page_loading_cursor(WebCursor::APPSTARTING);
- display_cursor = page_loading_cursor.GetCursor(module_handle);
- }
+ if (is_loading_ && display_cursor == kCursorArrow)
+ display_cursor = kCursorAppStarting;
// If the mouse is over our HWND, then update the cursor state immediately.
CPoint pt;
diff --git a/chrome/browser/render_widget_host_view_win.h b/chrome/browser/render_widget_host_view_win.h
index 1d15674..ce0497b7 100644
--- a/chrome/browser/render_widget_host_view_win.h
+++ b/chrome/browser/render_widget_host_view_win.h
@@ -210,11 +210,11 @@ class RenderWidgetHostViewWin :
// The associated Model.
RenderWidgetHost* render_widget_host_;
- // The real cursor type for the page.
- WebCursor::Type real_cursor_type_;
+ // The cursor for the page. This is passed up from the renderer.
+ HCURSOR cursor_;
- // The real cursor for the page. This is passed down from the renderer
- HCURSOR real_cursor_;
+ // True if cursor_ is a custom cursor that needs to be destroyed later.
+ bool cursor_is_custom_;
// Indicates if the page is loading.
bool is_loading_;