Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(638)

Unified Diff: ui/base/x/x11_util.cc

Issue 10316019: Aura: Adds custom cursors for drag and drop. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: patch Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/base/x/x11_util.cc
diff --git a/ui/base/x/x11_util.cc b/ui/base/x/x11_util.cc
index 5df42c04eb09c35354edd93887f881021781dbd3..a7b1bc3ad03f90df43e283ef900142c6d04f0512 100644
--- a/ui/base/x/x11_util.cc
+++ b/ui/base/x/x11_util.cc
@@ -37,6 +37,8 @@
#if defined(USE_AURA)
#include <X11/Xcursor/Xcursor.h>
+#include "third_party/skia/include/core/SkBitmap.h"
+#include "ui/gfx/skia_util.h"
#endif
#if defined(TOOLKIT_GTK)
@@ -411,6 +413,25 @@ void RefCustomXCursor(::Cursor cursor) {
void UnrefCustomXCursor(::Cursor cursor) {
XCustomCursorCache::GetInstance()->Unref(cursor);
}
+
+XcursorImage* SkBitmapToXcursorImage(const SkBitmap* bitmap,
+ const gfx::Point& hotspot) {
+ DCHECK(bitmap->config() == SkBitmap::kARGB_8888_Config);
+ XcursorImage* image = XcursorImageCreate(bitmap->width(), bitmap->height());
+ image->xhot = hotspot.x();
+ image->yhot = hotspot.y();
+
+ if (bitmap->width() && bitmap->height()) {
+ bitmap->lockPixels();
+ gfx::ConvertSkiaToRGBA(
+ static_cast<const unsigned char*>(bitmap->getPixels()),
+ bitmap->width() * bitmap->height(),
+ reinterpret_cast<unsigned char*>(image->pixels));
+ bitmap->unlockPixels();
+ }
+
+ return image;
+}
#endif
XID GetX11RootWindow() {
« content/test/DEPS ('K') | « ui/base/x/x11_util.h ('k') | ui/gfx/codec/png_codec.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698