| Index: chrome/renderer/print_web_view_helper_linux.cc
|
| ===================================================================
|
| --- chrome/renderer/print_web_view_helper_linux.cc (revision 168378)
|
| +++ chrome/renderer/print_web_view_helper_linux.cc (working copy)
|
| @@ -192,8 +192,11 @@
|
| gfx::Rect content_area;
|
| GetPageSizeAndContentAreaFromPageLayout(page_layout_in_points, &page_size,
|
| &content_area);
|
| - SkDevice* device = metafile->StartPageForVectorCanvas(
|
| - page_size, content_area, scale_factor);
|
| + gfx::Rect canvas_area =
|
| + params.params.display_header_footer ? gfx::Rect(page_size) : content_area;
|
| +
|
| + SkDevice* device = metafile->StartPageForVectorCanvas(page_size, canvas_area,
|
| + scale_factor);
|
| if (!device)
|
| return;
|
|
|
| @@ -203,16 +206,18 @@
|
| 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.
|
| + // TODO(vitalybuka) : why does it work only with 1.25?
|
| 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 / 1.25,
|
| + page_layout_in_points, *header_footer_info_,
|
| + params.params);
|
| }
|
| + RenderPageContent(frame, params.page_number, canvas_area, content_area,
|
| + scale_factor, canvas.get());
|
|
|
| // Done printing. Close the device context to retrieve the compiled metafile.
|
| if (!metafile->FinishPage())
|
|
|