Index: ui/ozone/platform/dri/dri_window_delegate_impl.cc |
diff --git a/ui/ozone/platform/dri/dri_window_delegate_impl.cc b/ui/ozone/platform/dri/dri_window_delegate_impl.cc |
index 50b2282d8f4c2375eb40be5d776d186b1e2b1b3e..b82130b913cd65e6552ebfdc9f4c4346fd8382ad 100644 |
--- a/ui/ozone/platform/dri/dri_window_delegate_impl.cc |
+++ b/ui/ozone/platform/dri/dri_window_delegate_impl.cc |
@@ -108,7 +108,7 @@ void DriWindowDelegateImpl::SetCursor(const std::vector<SkBitmap>& bitmaps, |
FROM_HERE, base::TimeDelta::FromMilliseconds(cursor_frame_delay_ms_), |
this, &DriWindowDelegateImpl::OnCursorAnimationTimeout); |
- ResetCursor(); |
+ ResetCursor(false); |
} |
void DriWindowDelegateImpl::MoveCursor(const gfx::Point& location) { |
@@ -118,7 +118,7 @@ void DriWindowDelegateImpl::MoveCursor(const gfx::Point& location) { |
controller_->MoveCursor(location); |
} |
-void DriWindowDelegateImpl::ResetCursor() { |
+void DriWindowDelegateImpl::ResetCursor(bool bitmap_only) { |
if (cursor_bitmaps_.size()) { |
// Draw new cursor into backbuffer. |
UpdateCursorImage(cursor_buffers_[cursor_frontbuffer_ ^ 1].get(), |
@@ -126,7 +126,8 @@ void DriWindowDelegateImpl::ResetCursor() { |
// Reset location & buffer. |
if (controller_) { |
- controller_->MoveCursor(cursor_location_); |
+ if (!bitmap_only) |
+ controller_->MoveCursor(cursor_location_); |
controller_->SetCursor(cursor_buffers_[cursor_frontbuffer_ ^ 1]); |
cursor_frontbuffer_ ^= 1; |
} |
@@ -141,7 +142,7 @@ void DriWindowDelegateImpl::OnCursorAnimationTimeout() { |
cursor_frame_++; |
cursor_frame_ %= cursor_bitmaps_.size(); |
- ResetCursor(); |
+ ResetCursor(true); |
} |
} // namespace ui |