From: Cheng Zhao Date: Mon, 7 Apr 2014 07:43:15 +0000 (+0800) Subject: Fix capturePage under accelerated mode, fixes #223. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b21e5a63008bce9bf44daff9ceea853abac39131;p=platform%2Fframework%2Fweb%2Fcrosswalk-tizen.git Fix capturePage under accelerated mode, fixes #223. --- diff --git a/atom/browser/native_window.cc b/atom/browser/native_window.cc index 0463fdd..119ddfa 100644 --- a/atom/browser/native_window.cc +++ b/atom/browser/native_window.cc @@ -271,12 +271,28 @@ base::ProcessHandle NativeWindow::GetRenderProcessHandle() { void NativeWindow::CapturePage(const gfx::Rect& rect, const CapturePageCallback& callback) { + content::RenderViewHost* render_view_host = + GetWebContents()->GetRenderViewHost(); + content::RenderWidgetHostView* render_widget_host_view = + render_view_host->GetView(); + + if (!render_widget_host_view) { + callback.Run(std::vector()); + return; + } + gfx::Rect flipped_y_rect = rect; flipped_y_rect.set_y(-rect.y()); + gfx::Size size; + if (flipped_y_rect.IsEmpty()) + size = render_widget_host_view->GetViewBounds().size(); + else + size = flipped_y_rect.size(); + GetWebContents()->GetRenderViewHost()->CopyFromBackingStore( flipped_y_rect, - gfx::Size(), + size, base::Bind(&NativeWindow::OnCapturePageDone, weak_factory_.GetWeakPtr(), callback));