OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> | 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> |
3 * 1999 Lars Knoll <knoll@kde.org> | 3 * 1999 Lars Knoll <knoll@kde.org> |
4 * 1999 Antti Koivisto <koivisto@kde.org> | 4 * 1999 Antti Koivisto <koivisto@kde.org> |
5 * 2000 Simon Hausmann <hausmann@kde.org> | 5 * 2000 Simon Hausmann <hausmann@kde.org> |
6 * 2000 Stefan Schimanski <1Stein@gmx.de> | 6 * 2000 Stefan Schimanski <1Stein@gmx.de> |
7 * 2001 George Staikos <staikos@kde.org> | 7 * 2001 George Staikos <staikos@kde.org> |
8 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. | 8 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. |
9 * Copyright (C) 2005 Alexey Proskuryakov <ap@nypop.com> | 9 * Copyright (C) 2005 Alexey Proskuryakov <ap@nypop.com> |
10 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | 10 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
(...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
515 void Frame::setPrinting(bool printing, const FloatSize& pageSize, const FloatSiz
e& originalPageSize, float maximumShrinkRatio, AdjustViewSizeOrNot shouldAdjustV
iewSize) | 515 void Frame::setPrinting(bool printing, const FloatSize& pageSize, const FloatSiz
e& originalPageSize, float maximumShrinkRatio, AdjustViewSizeOrNot shouldAdjustV
iewSize) |
516 { | 516 { |
517 // In setting printing, we should not validate resources already cached for
the document. | 517 // In setting printing, we should not validate resources already cached for
the document. |
518 // See https://bugs.webkit.org/show_bug.cgi?id=43704 | 518 // See https://bugs.webkit.org/show_bug.cgi?id=43704 |
519 ResourceCacheValidationSuppressor validationSuppressor(m_doc->cachedResource
Loader()); | 519 ResourceCacheValidationSuppressor validationSuppressor(m_doc->cachedResource
Loader()); |
520 | 520 |
521 m_doc->setPrinting(printing); | 521 m_doc->setPrinting(printing); |
522 view()->adjustMediaTypeForPrinting(printing); | 522 view()->adjustMediaTypeForPrinting(printing); |
523 | 523 |
524 m_doc->styleResolverChanged(RecalcStyleImmediately); | 524 m_doc->styleResolverChanged(RecalcStyleImmediately); |
525 if (printing) | 525 if (printing && !tree()->parent()) { |
| 526 // Only root frame should be fit to page size. Subframes should be const
rained by parents only. |
526 view()->forceLayoutForPagination(pageSize, originalPageSize, maximumShri
nkRatio, shouldAdjustViewSize); | 527 view()->forceLayoutForPagination(pageSize, originalPageSize, maximumShri
nkRatio, shouldAdjustViewSize); |
527 else { | 528 } else { |
528 view()->forceLayout(); | 529 view()->forceLayout(); |
529 if (shouldAdjustViewSize == AdjustViewSize) | 530 if (shouldAdjustViewSize == AdjustViewSize) |
530 view()->adjustViewSize(); | 531 view()->adjustViewSize(); |
531 } | 532 } |
532 | 533 |
533 // Subframes of the one we're printing don't lay out to the page size. | 534 // Subframes of the one we're printing don't lay out to the page size. |
534 for (Frame* child = tree()->firstChild(); child; child = child->tree()->next
Sibling()) | 535 for (Frame* child = tree()->firstChild(); child; child = child->tree()->next
Sibling()) |
535 child->setPrinting(printing, FloatSize(), FloatSize(), 0, shouldAdjustVi
ewSize); | 536 child->setPrinting(printing, FloatSize(), FloatSize(), 0, shouldAdjustVi
ewSize); |
536 } | 537 } |
537 | 538 |
538 FloatSize Frame::resizePageRectsKeepingRatio(const FloatSize& originalSize, cons
t FloatSize& expectedSize) | 539 FloatSize Frame::resizePageRectsKeepingRatio(const FloatSize& originalSize, cons
t FloatSize& expectedSize) |
539 { | 540 { |
540 FloatSize resultSize; | 541 FloatSize resultSize; |
541 if (!contentRenderer()) | 542 if (!contentRenderer()) |
542 return FloatSize(); | 543 return FloatSize(); |
543 | 544 |
544 if (contentRenderer()->style()->isHorizontalWritingMode()) { | 545 if (contentRenderer()->style()->isHorizontalWritingMode()) { |
| 546 ASSERT(fabs(originalSize.width()) > numeric_limits<float>::epsilon()); |
545 float ratio = originalSize.height() / originalSize.width(); | 547 float ratio = originalSize.height() / originalSize.width(); |
546 resultSize.setWidth(floorf(expectedSize.width())); | 548 resultSize.setWidth(floorf(expectedSize.width())); |
547 resultSize.setHeight(floorf(resultSize.width() * ratio)); | 549 resultSize.setHeight(floorf(resultSize.width() * ratio)); |
548 } else { | 550 } else { |
| 551 ASSERT(fabs(originalSize.height()) > numeric_limits<float>::epsilon()); |
549 float ratio = originalSize.width() / originalSize.height(); | 552 float ratio = originalSize.width() / originalSize.height(); |
550 resultSize.setHeight(floorf(expectedSize.height())); | 553 resultSize.setHeight(floorf(expectedSize.height())); |
551 resultSize.setWidth(floorf(resultSize.height() * ratio)); | 554 resultSize.setWidth(floorf(resultSize.height() * ratio)); |
552 } | 555 } |
553 return resultSize; | 556 return resultSize; |
554 } | 557 } |
555 | 558 |
556 void Frame::injectUserScripts(UserScriptInjectionTime injectionTime) | 559 void Frame::injectUserScripts(UserScriptInjectionTime injectionTime) |
557 { | 560 { |
558 if (!m_page) | 561 if (!m_page) |
(...skipping 554 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1113 | 1116 |
1114 m_view->paintContents(buffer->context(), paintingRect); | 1117 m_view->paintContents(buffer->context(), paintingRect); |
1115 | 1118 |
1116 RefPtr<Image> image = buffer->copyImage(); | 1119 RefPtr<Image> image = buffer->copyImage(); |
1117 return createDragImageFromImage(image.get()); | 1120 return createDragImageFromImage(image.get()); |
1118 } | 1121 } |
1119 | 1122 |
1120 #endif | 1123 #endif |
1121 | 1124 |
1122 } // namespace WebCore | 1125 } // namespace WebCore |
OLD | NEW |