Index: ui/snapshot/snapshot_android.cc |
diff --git a/ui/snapshot/snapshot_android.cc b/ui/snapshot/snapshot_android.cc |
index 9713cff3ec1da7e6303149ed777bf186834e0b3e..aec755516c87e029bd495bc165412b0636f17435 100644 |
--- a/ui/snapshot/snapshot_android.cc |
+++ b/ui/snapshot/snapshot_android.cc |
@@ -11,6 +11,7 @@ |
#include "ui/base/android/window_android.h" |
#include "ui/base/android/window_android_compositor.h" |
#include "ui/gfx/display.h" |
+#include "ui/gfx/geometry/point_conversions.h" |
#include "ui/gfx/geometry/rect_conversions.h" |
#include "ui/gfx/screen.h" |
#include "ui/snapshot/snapshot_async.h" |
@@ -44,7 +45,14 @@ static void MakeAsyncCopyRequest( |
gfx::Rect source_rect_in_pixel = |
gfx::ToEnclosingRect(gfx::ScaleRect(source_rect, device_scale_factor)); |
- request->set_area(source_rect_in_pixel); |
+ // Account for the toolbar offset. |
+ gfx::Vector2dF offset = window->content_offset(); |
+ gfx::Rect adjusted_source_rect(gfx::ToRoundedPoint( |
+ gfx::PointF(source_rect_in_pixel.x() + offset.x(), |
+ source_rect_in_pixel.y() + offset.y())), |
+ source_rect_in_pixel.size()); |
+ |
+ request->set_area(adjusted_source_rect); |
window->GetCompositor()->RequestCopyOfOutputOnRootLayer(request.Pass()); |
} |