Chromium Code Reviews| Index: ui/views/controls/textfield/textfield.cc |
| diff --git a/ui/views/controls/textfield/textfield.cc b/ui/views/controls/textfield/textfield.cc |
| index c9987ca6331d2b1b83eb0dec90978aea00a7dd30..05b332598fdca3132acccc3ce00dcb1dda15baa3 100644 |
| --- a/ui/views/controls/textfield/textfield.cc |
| +++ b/ui/views/controls/textfield/textfield.cc |
| @@ -1063,16 +1063,21 @@ void Textfield::WriteDragDataForView(View* sender, |
| display::Screen::GetScreen()->GetDisplayNearestWindow(native_view); |
| size.SetToMin(gfx::Size(display.size().width(), height())); |
| label.SetBoundsRect(gfx::Rect(size)); |
| - std::unique_ptr<gfx::Canvas> canvas( |
| - GetCanvasForDragImage(GetWidget(), label.size())); |
| label.SetEnabledColor(GetTextColor()); |
| + |
| + SkBitmap bitmap; |
| + float raster_scale = GetDeviceScaleForNativeView(GetWidget()); |
| #if defined(OS_LINUX) && !defined(OS_CHROMEOS) |
| // Desktop Linux Aura does not yet support transparency in drag images. |
| - canvas->DrawColor(GetBackgroundColor()); |
| + SkColor color = GetBackgroundColor(); |
| +#else |
| + SkColor color(SkColorSetARGB(0, 0, 0, 0)); |
|
danakj
2017/02/14 21:37:26
TRANSPARENT
|
| #endif |
| - label.Paint(ui::CanvasPainter(canvas.get(), 1.f).context()); |
| + label.Paint( |
| + ui::CanvasPainter(&bitmap, label.size(), raster_scale, color).context()); |
| const gfx::Vector2d kOffset(-15, 0); |
| - drag_utils::SetDragImageOnDataObject(*canvas, kOffset, data); |
| + gfx::ImageSkia image(gfx::ImageSkiaRep(bitmap, raster_scale)); |
| + drag_utils::SetDragImageOnDataObject(image, kOffset, data); |
| if (controller_) |
| controller_->OnWriteDragData(data); |
| } |