summaryrefslogtreecommitdiffstats
path: root/webkit/tools/test_shell
diff options
context:
space:
mode:
Diffstat (limited to 'webkit/tools/test_shell')
-rw-r--r--webkit/tools/test_shell/test_webview_delegate.h8
-rw-r--r--webkit/tools/test_shell/test_webview_delegate_gtk.cc5
-rw-r--r--webkit/tools/test_shell/test_webview_delegate_win.cc16
3 files changed, 9 insertions, 20 deletions
diff --git a/webkit/tools/test_shell/test_webview_delegate.h b/webkit/tools/test_shell/test_webview_delegate.h
index 5c05e34..77c7b8e 100644
--- a/webkit/tools/test_shell/test_webview_delegate.h
+++ b/webkit/tools/test_shell/test_webview_delegate.h
@@ -22,6 +22,7 @@
#include "base/basictypes.h"
#include "base/ref_counted.h"
+#include "webkit/glue/webcursor.h"
#include "webkit/glue/webview_delegate.h"
#include "webkit/glue/webwidget_delegate.h"
#if defined(OS_WIN)
@@ -66,9 +67,7 @@ class TestWebViewDelegate : public base::RefCounted<TestWebViewDelegate>,
#else
, select_trailing_whitespace_enabled_(false)
#endif
-#if defined(OS_WIN)
- , custom_cursor_(NULL)
-#elif defined(OS_LINUX)
+#if defined(OS_LINUX)
, cursor_type_(GDK_X_CURSOR)
#endif
{
@@ -310,9 +309,8 @@ class TestWebViewDelegate : public base::RefCounted<TestWebViewDelegate>,
// true if we want to enable selection of trailing whitespaces
bool select_trailing_whitespace_enabled_;
+ WebCursor current_cursor_;
#if defined(OS_WIN)
- HCURSOR custom_cursor_;
-
// Classes needed by drag and drop.
scoped_refptr<TestDragDelegate> drag_delegate_;
scoped_refptr<TestDropDelegate> drop_delegate_;
diff --git a/webkit/tools/test_shell/test_webview_delegate_gtk.cc b/webkit/tools/test_shell/test_webview_delegate_gtk.cc
index 6db73b4..831691a 100644
--- a/webkit/tools/test_shell/test_webview_delegate_gtk.cc
+++ b/webkit/tools/test_shell/test_webview_delegate_gtk.cc
@@ -111,13 +111,14 @@ void TestWebViewDelegate::CloseWidgetSoon(WebWidget* webwidget) {
void TestWebViewDelegate::SetCursor(WebWidget* webwidget,
const WebCursor& cursor) {
- GdkCursorType cursor_type = cursor.GetCursorType();
+ current_cursor_ = cursor;
+ GdkCursorType cursor_type = current_cursor_.GetCursorType();
GdkCursor* gdk_cursor;
if (cursor_type == GDK_CURSOR_IS_PIXMAP) {
// TODO(port): WebKit bug https://bugs.webkit.org/show_bug.cgi?id=16388 is
// that calling gdk_window_set_cursor repeatedly is expensive. We should
// avoid it here where possible.
- gdk_cursor = cursor.GetCustomCursor();
+ gdk_cursor = current_cursor_.GetCustomCursor();
} else {
// Optimize the common case, where the cursor hasn't changed.
// However, we can switch between different pixmaps, so only on the
diff --git a/webkit/tools/test_shell/test_webview_delegate_win.cc b/webkit/tools/test_shell/test_webview_delegate_win.cc
index cea089a..30431f6 100644
--- a/webkit/tools/test_shell/test_webview_delegate_win.cc
+++ b/webkit/tools/test_shell/test_webview_delegate_win.cc
@@ -36,8 +36,6 @@
// WebViewDelegate -----------------------------------------------------------
TestWebViewDelegate::~TestWebViewDelegate() {
- if (custom_cursor_)
- DestroyIcon(custom_cursor_);
RevokeDragDrop(shell_->webViewWnd());
}
@@ -89,17 +87,9 @@ void TestWebViewDelegate::CloseWidgetSoon(WebWidget* webwidget) {
void TestWebViewDelegate::SetCursor(WebWidget* webwidget,
const WebCursor& cursor) {
if (WebWidgetHost* host = GetHostForWidget(webwidget)) {
- if (custom_cursor_) {
- DestroyIcon(custom_cursor_);
- custom_cursor_ = NULL;
- }
- if (cursor.IsCustom()) {
- custom_cursor_ = cursor.GetCustomCursor();
- host->SetCursor(custom_cursor_);
- } else {
- HINSTANCE mod_handle = GetModuleHandle(NULL);
- host->SetCursor(cursor.GetCursor(mod_handle));
- }
+ current_cursor_ = cursor;
+ HINSTANCE mod_handle = GetModuleHandle(NULL);
+ host->SetCursor(current_cursor_.GetCursor(mod_handle));
}
}