diff options
Diffstat (limited to 'webkit')
-rw-r--r-- | webkit/glue/webcursor.h | 3 | ||||
-rw-r--r-- | webkit/glue/webcursor_gtk.cc | 46 | ||||
-rwxr-xr-x | webkit/tools/test_shell/test_webview_delegate_gtk.cc | 8 |
3 files changed, 31 insertions, 26 deletions
diff --git a/webkit/glue/webcursor.h b/webkit/glue/webcursor.h index 1dbf3c3..a46f881 100644 --- a/webkit/glue/webcursor.h +++ b/webkit/glue/webcursor.h @@ -73,7 +73,8 @@ class WebCursor { #elif defined(OS_LINUX) // Return the stock GdkCursorType for this cursor, or GDK_CURSOR_IS_PIXMAP - // if it's a custom cursor. + // if it's a custom cursor. Return GDK_LAST_CURSOR to indicate that the cursor + // should be set to the system default. GdkCursorType GetCursorType() const; // Return a new GdkCursor* for this cursor. Only valid if GetCursorType diff --git a/webkit/glue/webcursor_gtk.cc b/webkit/glue/webcursor_gtk.cc index 0fc03c0..d95bc1b 100644 --- a/webkit/glue/webcursor_gtk.cc +++ b/webkit/glue/webcursor_gtk.cc @@ -49,7 +49,7 @@ GdkCursorType WebCursor::GetCursorType() const { // change everything. switch (type_) { case PlatformCursor::TypePointer: - return GDK_ARROW; + return GDK_LAST_CURSOR; case PlatformCursor::TypeCross: return GDK_CROSS; case PlatformCursor::TypeHand: @@ -77,62 +77,62 @@ GdkCursorType WebCursor::GetCursorType() const { case PlatformCursor::TypeWestResize: return GDK_LEFT_SIDE; case PlatformCursor::TypeNorthSouthResize: - NOTIMPLEMENTED(); return GDK_ARROW; + NOTIMPLEMENTED(); return GDK_LAST_CURSOR; case PlatformCursor::TypeEastWestResize: - NOTIMPLEMENTED(); return GDK_ARROW; + NOTIMPLEMENTED(); return GDK_LAST_CURSOR; case PlatformCursor::TypeNorthEastSouthWestResize: - NOTIMPLEMENTED(); return GDK_ARROW; + NOTIMPLEMENTED(); return GDK_LAST_CURSOR; case PlatformCursor::TypeNorthWestSouthEastResize: - NOTIMPLEMENTED(); return GDK_ARROW; + NOTIMPLEMENTED(); return GDK_LAST_CURSOR; case PlatformCursor::TypeColumnResize: return GDK_SB_H_DOUBLE_ARROW; // TODO(evanm): is this correct? case PlatformCursor::TypeRowResize: return GDK_SB_V_DOUBLE_ARROW; // TODO(evanm): is this correct? case PlatformCursor::TypeMiddlePanning: - NOTIMPLEMENTED(); return GDK_ARROW; + NOTIMPLEMENTED(); return GDK_LAST_CURSOR; case PlatformCursor::TypeEastPanning: - NOTIMPLEMENTED(); return GDK_ARROW; + NOTIMPLEMENTED(); return GDK_LAST_CURSOR; case PlatformCursor::TypeNorthPanning: - NOTIMPLEMENTED(); return GDK_ARROW; + NOTIMPLEMENTED(); return GDK_LAST_CURSOR; case PlatformCursor::TypeNorthEastPanning: - NOTIMPLEMENTED(); return GDK_ARROW; + NOTIMPLEMENTED(); return GDK_LAST_CURSOR; case PlatformCursor::TypeNorthWestPanning: - NOTIMPLEMENTED(); return GDK_ARROW; + NOTIMPLEMENTED(); return GDK_LAST_CURSOR; case PlatformCursor::TypeSouthPanning: - NOTIMPLEMENTED(); return GDK_ARROW; + NOTIMPLEMENTED(); return GDK_LAST_CURSOR; case PlatformCursor::TypeSouthEastPanning: - NOTIMPLEMENTED(); return GDK_ARROW; + NOTIMPLEMENTED(); return GDK_LAST_CURSOR; case PlatformCursor::TypeSouthWestPanning: - NOTIMPLEMENTED(); return GDK_ARROW; + NOTIMPLEMENTED(); return GDK_LAST_CURSOR; case PlatformCursor::TypeWestPanning: - NOTIMPLEMENTED(); return GDK_ARROW; + NOTIMPLEMENTED(); return GDK_LAST_CURSOR; case PlatformCursor::TypeMove: return GDK_FLEUR; case PlatformCursor::TypeVerticalText: - NOTIMPLEMENTED(); return GDK_ARROW; + NOTIMPLEMENTED(); return GDK_LAST_CURSOR; case PlatformCursor::TypeCell: - NOTIMPLEMENTED(); return GDK_ARROW; + NOTIMPLEMENTED(); return GDK_LAST_CURSOR; case PlatformCursor::TypeContextMenu: - NOTIMPLEMENTED(); return GDK_ARROW; + NOTIMPLEMENTED(); return GDK_LAST_CURSOR; case PlatformCursor::TypeAlias: - NOTIMPLEMENTED(); return GDK_ARROW; + NOTIMPLEMENTED(); return GDK_LAST_CURSOR; case PlatformCursor::TypeProgress: return GDK_WATCH; case PlatformCursor::TypeNoDrop: - NOTIMPLEMENTED(); return GDK_ARROW; + NOTIMPLEMENTED(); return GDK_LAST_CURSOR; case PlatformCursor::TypeCopy: - NOTIMPLEMENTED(); return GDK_ARROW; + NOTIMPLEMENTED(); return GDK_LAST_CURSOR; case PlatformCursor::TypeNone: - NOTIMPLEMENTED(); return GDK_ARROW; + NOTIMPLEMENTED(); return GDK_LAST_CURSOR; case PlatformCursor::TypeNotAllowed: - NOTIMPLEMENTED(); return GDK_ARROW; + NOTIMPLEMENTED(); return GDK_LAST_CURSOR; case PlatformCursor::TypeZoomIn: case PlatformCursor::TypeZoomOut: case PlatformCursor::TypeCustom: return GDK_CURSOR_IS_PIXMAP; } NOTREACHED(); - return GDK_ARROW; + return GDK_LAST_CURSOR; } GdkCursor* WebCursor::GetCustomCursor() const { diff --git a/webkit/tools/test_shell/test_webview_delegate_gtk.cc b/webkit/tools/test_shell/test_webview_delegate_gtk.cc index 620de76..230eba4 100755 --- a/webkit/tools/test_shell/test_webview_delegate_gtk.cc +++ b/webkit/tools/test_shell/test_webview_delegate_gtk.cc @@ -146,12 +146,16 @@ void TestWebViewDelegate::SetCursor(WebWidget* webwidget, // non-pixmap branch. if (cursor_type_ == cursor_type) return; - gdk_cursor = gdk_cursor_new(cursor_type); + if (cursor_type_ == GDK_LAST_CURSOR) + gdk_cursor = NULL; + else + gdk_cursor = gdk_cursor_new(cursor_type); } cursor_type_ = cursor_type; gdk_window_set_cursor(shell_->webViewWnd()->window, gdk_cursor); // The window now owns the cursor. - gdk_cursor_unref(gdk_cursor); + if (gdk_cursor) + gdk_cursor_unref(gdk_cursor); } void TestWebViewDelegate::GetWindowRect(WebWidget* webwidget, |