summaryrefslogtreecommitdiffstats
path: root/views
diff options
context:
space:
mode:
authorsadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-23 00:55:28 +0000
committersadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-23 00:55:28 +0000
commitf0b6b4881e24a1e7cd9524c4e381382c14bde1f1 (patch)
treea003cdb87339224ae24f3dd39f8d3fc9a8f1c8fc /views
parent1edd9e76f6dac6bcdbdebf51eceb7b6665fe52fa (diff)
downloadchromium_src-f0b6b4881e24a1e7cd9524c4e381382c14bde1f1.zip
chromium_src-f0b6b4881e24a1e7cd9524c4e381382c14bde1f1.tar.gz
chromium_src-f0b6b4881e24a1e7cd9524c4e381382c14bde1f1.tar.bz2
Refactoring of cursor usage (primarily for linux).
Add API to WebCursor to return a native-cursor, and implementation for windows, linux and mac. For linux: Move gtk_util::GetCursor into gfx:: namespace. Also, get rid of ref/unref'ing the cursors from everywhere. Instead, do almost all of it in one place (in gfx). Also, show proper cursors for web-pages with touchui=1 (i.e. add support for updating cursor in RenderWidgetHostViewViews). Review URL: http://codereview.chromium.org/5110010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67034 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views')
-rw-r--r--views/controls/link.cc6
-rw-r--r--views/controls/resize_area.cc6
-rw-r--r--views/controls/single_split_view.cc6
-rw-r--r--views/widget/root_view.cc2
-rw-r--r--views/window/window_gtk.cc9
5 files changed, 18 insertions, 11 deletions
diff --git a/views/controls/link.cc b/views/controls/link.cc
index b392902..6101e49 100644
--- a/views/controls/link.cc
+++ b/views/controls/link.cc
@@ -14,6 +14,10 @@
#include "gfx/font.h"
#include "views/event.h"
+#if defined(OS_LINUX)
+#include "gfx/gtk_util.h"
+#endif
+
namespace {
void GetColors(const SkColor* background_color, // NULL means "use default"
@@ -170,7 +174,7 @@ gfx::NativeCursor Link::GetCursorForPoint(Event::EventType event_type,
g_hand_cursor = LoadCursor(NULL, IDC_HAND);
return g_hand_cursor;
#elif defined(OS_LINUX)
- return gdk_cursor_new(GDK_HAND2);
+ return gfx::GetCursor(GDK_HAND2);
#endif
}
diff --git a/views/controls/resize_area.cc b/views/controls/resize_area.cc
index 950d97c..56a78b8 100644
--- a/views/controls/resize_area.cc
+++ b/views/controls/resize_area.cc
@@ -7,6 +7,10 @@
#include "app/resource_bundle.h"
#include "base/logging.h"
+#if defined(OS_LINUX)
+#include "gfx/gtk_util.h"
+#endif
+
namespace views {
const char ResizeArea::kViewClassName[] = "views/ResizeArea";
@@ -39,7 +43,7 @@ gfx::NativeCursor ResizeArea::GetCursorForPoint(Event::EventType event_type,
g_resize_cursor = LoadCursor(NULL, IDC_SIZEWE);
return g_resize_cursor;
#elif defined(OS_LINUX)
- return gdk_cursor_new(GDK_SB_H_DOUBLE_ARROW);
+ return gfx::GetCursor(GDK_SB_H_DOUBLE_ARROW);
#endif
}
diff --git a/views/controls/single_split_view.cc b/views/controls/single_split_view.cc
index debe716..f997f31 100644
--- a/views/controls/single_split_view.cc
+++ b/views/controls/single_split_view.cc
@@ -12,6 +12,10 @@
#include "skia/ext/skia_utils_win.h"
#include "views/background.h"
+#if defined(OS_LINUX)
+#include "gfx/gtk_util.h"
+#endif
+
namespace views {
// Size of the divider in pixels.
@@ -128,7 +132,7 @@ gfx::NativeCursor SingleSplitView::GetCursorForPoint(
static HCURSOR ns_resize_cursor = LoadCursor(NULL, IDC_SIZENS);
return is_horizontal_ ? we_resize_cursor : ns_resize_cursor;
#elif defined(OS_LINUX)
- return gdk_cursor_new(is_horizontal_ ?
+ return gfx::GetCursor(is_horizontal_ ?
GDK_SB_H_DOUBLE_ARROW :
GDK_SB_V_DOUBLE_ARROW);
#endif
diff --git a/views/widget/root_view.cc b/views/widget/root_view.cc
index 91d639c..753e9de 100644
--- a/views/widget/root_view.cc
+++ b/views/widget/root_view.cc
@@ -779,8 +779,6 @@ void RootView::SetActiveCursor(gfx::NativeCursor cursor) {
if (!native_view)
return;
gdk_window_set_cursor(native_view->window, cursor);
- if (cursor)
- gdk_cursor_destroy(cursor);
#endif
}
diff --git a/views/window/window_gtk.cc b/views/window/window_gtk.cc
index 3d7f788..d59d7a5 100644
--- a/views/window/window_gtk.cc
+++ b/views/window/window_gtk.cc
@@ -7,6 +7,7 @@
#include "gfx/rect.h"
#include "base/i18n/rtl.h"
#include "base/utf_string_conversions.h"
+#include "gfx/gtk_util.h"
#include "gfx/path.h"
#include "views/event.h"
#include "views/screen.h"
@@ -329,9 +330,7 @@ gboolean WindowGtk::OnMotionNotify(GtkWidget* widget, GdkEventMotion* event) {
non_client_view_->NonClientHitTest(gfx::Point(x, y));
if (hittest_code != HTCLIENT) {
GdkCursorType cursor_type = HitTestCodeToGdkCursorType(hittest_code);
- GdkCursor* cursor = gdk_cursor_new(cursor_type);
- gdk_window_set_cursor(widget->window, cursor);
- gdk_cursor_destroy(cursor);
+ gdk_window_set_cursor(widget->window, gfx::GetCursor(cursor_type));
}
return WidgetGtk::OnMotionNotify(widget, event);
@@ -362,9 +361,7 @@ gboolean WindowGtk::OnWindowStateEvent(GtkWidget* widget,
}
gboolean WindowGtk::OnLeaveNotify(GtkWidget* widget, GdkEventCrossing* event) {
- GdkCursor* cursor = gdk_cursor_new(GDK_LEFT_PTR);
- gdk_window_set_cursor(widget->window, cursor);
- gdk_cursor_destroy(cursor);
+ gdk_window_set_cursor(widget->window, gfx::GetCursor(GDK_LEFT_PTR));
return WidgetGtk::OnLeaveNotify(widget, event);
}