Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(13)

Side by Side Diff: third_party/WebKit/WebKit/chromium/src/WebFrameImpl.cpp

Issue 1520014: Linux: fix printing somewhat.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « printing/pdf_ps_metafile_cairo_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2009 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 { 281 {
282 PrintContext::end(); 282 PrintContext::end();
283 } 283 }
284 284
285 virtual float getPageShrink(int pageNumber) const 285 virtual float getPageShrink(int pageNumber) const
286 { 286 {
287 IntRect pageRect = m_pageRects[pageNumber]; 287 IntRect pageRect = m_pageRects[pageNumber];
288 return m_printedPageWidth / pageRect.width(); 288 return m_printedPageWidth / pageRect.width();
289 } 289 }
290 290
291 // Spools the printed page, a subrect of m_frame. Skip the scale step. 291 // Spools the printed page, a subrect of m_frame. Skip the scale step.
292 // NativeTheme doesn't play well with scaling. Scaling is done browser side 292 // NativeTheme doesn't play well with scaling. Scaling is done browser side
293 // instead. Returns the scale to be applied. 293 // instead. Returns the scale to be applied.
294 // On Linux, we don't have the problem with NativeTheme, hence we let WebKit
295 // do the scaling and ignore the return value.
294 virtual float spoolPage(GraphicsContext& ctx, int pageNumber) 296 virtual float spoolPage(GraphicsContext& ctx, int pageNumber)
295 { 297 {
296 IntRect pageRect = m_pageRects[pageNumber]; 298 IntRect pageRect = m_pageRects[pageNumber];
297 float scale = m_printedPageWidth / pageRect.width(); 299 float scale = m_printedPageWidth / pageRect.width();
298 300
299 ctx.save(); 301 ctx.save();
302 #if OS(LINUX)
303 ctx.scale(WebCore::FloatSize(scale, scale));
304 #endif
300 ctx.translate(static_cast<float>(-pageRect.x()), 305 ctx.translate(static_cast<float>(-pageRect.x()),
301 static_cast<float>(-pageRect.y())); 306 static_cast<float>(-pageRect.y()));
302 ctx.clip(pageRect); 307 ctx.clip(pageRect);
303 m_frame->view()->paintContents(&ctx, pageRect); 308 m_frame->view()->paintContents(&ctx, pageRect);
304 ctx.restore(); 309 ctx.restore();
305 return scale; 310 return scale;
306 } 311 }
307 312
308 virtual void computePageRects(const FloatRect& printRect, float headerHeight , float footerHeight, float userScaleFactor, float& outPageHeight) 313 virtual void computePageRects(const FloatRect& printRect, float headerHeight , float footerHeight, float userScaleFactor, float& outPageHeight)
309 { 314 {
(...skipping 1827 matching lines...) Expand 10 before | Expand all | Expand 10 after
2137 2142
2138 if (!m_frame->redirectScheduler()->locationChangePending()) { 2143 if (!m_frame->redirectScheduler()->locationChangePending()) {
2139 m_frame->loader()->stopAllLoaders(); 2144 m_frame->loader()->stopAllLoaders();
2140 m_frame->loader()->begin(m_frame->loader()->url(), true, securityOrigin) ; 2145 m_frame->loader()->begin(m_frame->loader()->url(), true, securityOrigin) ;
2141 m_frame->loader()->write(scriptResult); 2146 m_frame->loader()->write(scriptResult);
2142 m_frame->loader()->end(); 2147 m_frame->loader()->end();
2143 } 2148 }
2144 } 2149 }
2145 2150
2146 } // namespace WebKit 2151 } // namespace WebKit
OLDNEW
« no previous file with comments | « printing/pdf_ps_metafile_cairo_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698