| OLD | NEW |
| 1 /** | 1 /** |
| 2 * Copyright (C) 2007 Rob Buis <buis@kde.org> | 2 * Copyright (C) 2007 Rob Buis <buis@kde.org> |
| 3 * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org> | 3 * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org> |
| 4 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 4 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
| 5 * | 5 * |
| 6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
| 7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
| 8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
| 9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
| 10 * | 10 * |
| (...skipping 578 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 589 | 589 |
| 590 FloatPoint decorationOrigin(fragment.x, fragment.y); | 590 FloatPoint decorationOrigin(fragment.x, fragment.y); |
| 591 float width = fragment.width; | 591 float width = fragment.width; |
| 592 const FontMetrics& scaledFontMetrics = scaledFont.fontMetrics(); | 592 const FontMetrics& scaledFontMetrics = scaledFont.fontMetrics(); |
| 593 | 593 |
| 594 GraphicsContextStateSaver stateSaver(*context, false); | 594 GraphicsContextStateSaver stateSaver(*context, false); |
| 595 if (scalingFactor != 1) { | 595 if (scalingFactor != 1) { |
| 596 stateSaver.save(); | 596 stateSaver.save(); |
| 597 width *= scalingFactor; | 597 width *= scalingFactor; |
| 598 decorationOrigin.scale(scalingFactor, scalingFactor); | 598 decorationOrigin.scale(scalingFactor, scalingFactor); |
| 599 context->scale(FloatSize(1 / scalingFactor, 1 / scalingFactor)); | 599 context->scale(1 / scalingFactor, 1 / scalingFactor); |
| 600 } | 600 } |
| 601 | 601 |
| 602 decorationOrigin.move(0, -scaledFontMetrics.floatAscent() + positionOffsetFo
rDecoration(decoration, scaledFontMetrics, thickness)); | 602 decorationOrigin.move(0, -scaledFontMetrics.floatAscent() + positionOffsetFo
rDecoration(decoration, scaledFontMetrics, thickness)); |
| 603 | 603 |
| 604 Path path; | 604 Path path; |
| 605 path.addRect(FloatRect(decorationOrigin, FloatSize(width, thickness))); | 605 path.addRect(FloatRect(decorationOrigin, FloatSize(width, thickness))); |
| 606 | 606 |
| 607 // acquirePaintingResource also modifies state if the scalingFactor is non-i
dentity. | 607 // acquirePaintingResource also modifies state if the scalingFactor is non-i
dentity. |
| 608 // Above we have saved the state for this case. | 608 // Above we have saved the state for this case. |
| 609 if (acquirePaintingResource(context, scalingFactor, decorationRenderer, deco
rationStyle, resourceMode)) | 609 if (acquirePaintingResource(context, scalingFactor, decorationRenderer, deco
rationStyle, resourceMode)) |
| (...skipping 15 matching lines...) Expand all Loading... |
| 625 // Text shadows are disabled when printing. http://crbug.com/258321 | 625 // Text shadows are disabled when printing. http://crbug.com/258321 |
| 626 bool hasShadow = shadowList && !context->printing(); | 626 bool hasShadow = shadowList && !context->printing(); |
| 627 | 627 |
| 628 FloatPoint textOrigin(fragment.x, fragment.y); | 628 FloatPoint textOrigin(fragment.x, fragment.y); |
| 629 FloatSize textSize(fragment.width, fragment.height); | 629 FloatSize textSize(fragment.width, fragment.height); |
| 630 | 630 |
| 631 if (scalingFactor != 1) { | 631 if (scalingFactor != 1) { |
| 632 textOrigin.scale(scalingFactor, scalingFactor); | 632 textOrigin.scale(scalingFactor, scalingFactor); |
| 633 textSize.scale(scalingFactor); | 633 textSize.scale(scalingFactor); |
| 634 context->save(); | 634 context->save(); |
| 635 context->scale(FloatSize(1 / scalingFactor, 1 / scalingFactor)); | 635 context->scale(1 / scalingFactor, 1 / scalingFactor); |
| 636 } | 636 } |
| 637 | 637 |
| 638 if (hasShadow) { | 638 if (hasShadow) { |
| 639 OwnPtr<DrawLooperBuilder> drawLooperBuilder = DrawLooperBuilder::create(
); | 639 OwnPtr<DrawLooperBuilder> drawLooperBuilder = DrawLooperBuilder::create(
); |
| 640 for (size_t i = shadowList->shadows().size(); i--; ) { | 640 for (size_t i = shadowList->shadows().size(); i--; ) { |
| 641 const ShadowData& shadow = shadowList->shadows()[i]; | 641 const ShadowData& shadow = shadowList->shadows()[i]; |
| 642 FloatSize offset(shadow.x(), shadow.y()); | 642 FloatSize offset(shadow.x(), shadow.y()); |
| 643 drawLooperBuilder->addShadow(offset, shadow.blur(), shadow.color(), | 643 drawLooperBuilder->addShadow(offset, shadow.blur(), shadow.color(), |
| 644 DrawLooperBuilder::ShadowRespectsTransforms, DrawLooperBuilder::
ShadowRespectsAlpha); | 644 DrawLooperBuilder::ShadowRespectsTransforms, DrawLooperBuilder::
ShadowRespectsAlpha); |
| 645 } | 645 } |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 810 renderer().updateHitTestResult(result, locationInContainer.point
() - toLayoutSize(accumulatedOffset)); | 810 renderer().updateHitTestResult(result, locationInContainer.point
() - toLayoutSize(accumulatedOffset)); |
| 811 if (!result.addNodeToRectBasedTestResult(renderer().node(), requ
est, locationInContainer, rect)) | 811 if (!result.addNodeToRectBasedTestResult(renderer().node(), requ
est, locationInContainer, rect)) |
| 812 return true; | 812 return true; |
| 813 } | 813 } |
| 814 } | 814 } |
| 815 } | 815 } |
| 816 return false; | 816 return false; |
| 817 } | 817 } |
| 818 | 818 |
| 819 } // namespace WebCore | 819 } // namespace WebCore |
| OLD | NEW |