Chromium Code Reviews| Index: chrome/renderer/print_web_view_helper_linux.cc |
| diff --git a/chrome/renderer/print_web_view_helper_linux.cc b/chrome/renderer/print_web_view_helper_linux.cc |
| index 4198377b0a6fb7acfff3336986614a5f6a0f5754..6aff3c50a422b019d3c80f8732364022d4e7d604 100644 |
| --- a/chrome/renderer/print_web_view_helper_linux.cc |
| +++ b/chrome/renderer/print_web_view_helper_linux.cc |
| @@ -192,8 +192,11 @@ void PrintWebViewHelper::PrintPageInternal( |
| gfx::Rect content_area; |
| GetPageSizeAndContentAreaFromPageLayout(page_layout_in_points, &page_size, |
| &content_area); |
| + gfx::Rect canvas_area = |
| + params.params.display_header_footer ? gfx::Rect(page_size) : content_area; |
| + |
| SkDevice* device = metafile->StartPageForVectorCanvas( |
| - page_size, content_area, scale_factor); |
| + page_size, canvas_area, scale_factor); |
|
vandebo (ex-Chrome)
2012/11/05 22:56:18
If you do this, then you'll need to apply a clip t
Vitaly Buka (NO REVIEWS)
2012/11/06 00:40:15
Seems webkit clip content well, so I didn't add on
|
| if (!device) |
| return; |
| @@ -203,16 +206,21 @@ void PrintWebViewHelper::PrintPageInternal( |
| canvas->unref(); // SkRefPtr and new both took a reference. |
| printing::MetafileSkiaWrapper::SetMetafileOnCanvas(*canvas, metafile); |
| skia::SetIsDraftMode(*canvas, is_print_ready_metafile_sent_); |
| - frame->printPage(params.page_number, canvas.get()); |
| if (params.params.display_header_footer) { |
| // |page_number| is 0-based, so 1 is added. |
| // The scale factor on Linux is 1. |
| + double page_shrink_factor = frame->getPrintPageShrink(params.page_number); |
| PrintHeaderAndFooter(canvas.get(), params.page_number + 1, |
| print_preview_context_.total_page_count(), |
| - scale_factor, page_layout_in_points, |
| - *header_footer_info_, params.params); |
| + scale_factor * page_shrink_factor, |
| + page_layout_in_points, *header_footer_info_, |
| + params.params); |
| } |
| + canvas->translate((content_area.x() - canvas_area.x()) / scale_factor, |
| + (content_area.y() - canvas_area.y()) / scale_factor); |
| + |
| + frame->printPage(params.page_number, canvas.get()); |
| // Done printing. Close the device context to retrieve the compiled metafile. |
| if (!metafile->FinishPage()) |