From 4a96852cabd2de665342fa43fe9149f8b7f59943 Mon Sep 17 00:00:00 2001 From: darin Date: Tue, 1 Aug 2006 06:13:20 +0000 Subject: [PATCH] LayoutTests: - test for http://bugzilla.opendarwin.org/show_bug.cgi?id=10158 REGRESSION: Selection highlight is dark and opaque when solid-color images are used Reviewed by Darin. * fast/backgrounds/solid-color-context-restore-expected.checksum: Added. * fast/backgrounds/solid-color-context-restore-expected.png: Added. * fast/backgrounds/solid-color-context-restore-expected.txt: Added. * fast/backgrounds/solid-color-context-restore.html: Added. WebCore: - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=10158 REGRESSION: Selection highlight is dark and opaque when solid-color images are used Reviewed by Darin. Pixel test: fast/backgrounds/solid-color-context-restore.html * platform/mac/ImageMac.mm: (WebCore::Image::draw): Added calls to preserve the graphics context around the painting of a solid color image. (WebCore::Image::drawTiled): Ditto. git-svn-id: https://svn.webkit.org/repository/webkit/trunk@15733 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- LayoutTests/ChangeLog | 12 +++++++++ ...id-color-context-restore-expected.checksum | 1 + .../solid-color-context-restore-expected.png | Bin 0 -> 9505 bytes .../solid-color-context-restore-expected.txt | 16 ++++++++++++ .../solid-color-context-restore.html | 23 ++++++++++++++++++ WebCore/ChangeLog | 14 +++++++++++ WebCore/platform/mac/ImageMac.mm | 6 +++++ 7 files changed, 72 insertions(+) create mode 100644 LayoutTests/fast/backgrounds/solid-color-context-restore-expected.checksum create mode 100644 LayoutTests/fast/backgrounds/solid-color-context-restore-expected.png create mode 100644 LayoutTests/fast/backgrounds/solid-color-context-restore-expected.txt create mode 100644 LayoutTests/fast/backgrounds/solid-color-context-restore.html diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog index abff314e5949..20adccdd1878 100644 --- a/LayoutTests/ChangeLog +++ b/LayoutTests/ChangeLog @@ -1,3 +1,15 @@ +2006-07-31 Mitz Pettel + + - test for http://bugzilla.opendarwin.org/show_bug.cgi?id=10158 + REGRESSION: Selection highlight is dark and opaque when solid-color images are used + + Reviewed by Darin. + + * fast/backgrounds/solid-color-context-restore-expected.checksum: Added. + * fast/backgrounds/solid-color-context-restore-expected.png: Added. + * fast/backgrounds/solid-color-context-restore-expected.txt: Added. + * fast/backgrounds/solid-color-context-restore.html: Added. + 2006-07-31 Darin Adler Reviewed by Maciej. diff --git a/LayoutTests/fast/backgrounds/solid-color-context-restore-expected.checksum b/LayoutTests/fast/backgrounds/solid-color-context-restore-expected.checksum new file mode 100644 index 000000000000..1408a3f0b026 --- /dev/null +++ b/LayoutTests/fast/backgrounds/solid-color-context-restore-expected.checksum @@ -0,0 +1 @@ +d04a85690ef07ce117313108750cf56e \ No newline at end of file diff --git a/LayoutTests/fast/backgrounds/solid-color-context-restore-expected.png b/LayoutTests/fast/backgrounds/solid-color-context-restore-expected.png new file mode 100644 index 0000000000000000000000000000000000000000..382d1f7fb0864bcef430c1e0efaffc6611955d09 GIT binary patch literal 9505 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 + + + + +

+ This tests that the graphics context is restored after painting solid color + images. The highlight color should be light blue. +

+
+
+ foo +
+ + + diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog index f447b137c091..33fa1d15aa19 100644 --- a/WebCore/ChangeLog +++ b/WebCore/ChangeLog @@ -1,3 +1,17 @@ +2006-07-31 Mitz Pettel + + - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=10158 + REGRESSION: Selection highlight is dark and opaque when solid-color images are used + + Reviewed by Darin. + + Pixel test: fast/backgrounds/solid-color-context-restore.html + + * platform/mac/ImageMac.mm: + (WebCore::Image::draw): Added calls to preserve the graphics context + around the painting of a solid color image. + (WebCore::Image::drawTiled): Ditto. + 2006-07-31 Maciej Stachowiak Rubber-stamped by Tim Hatcher. diff --git a/WebCore/platform/mac/ImageMac.mm b/WebCore/platform/mac/ImageMac.mm index c081c663e16a..9250d82f7243 100644 --- a/WebCore/platform/mac/ImageMac.mm +++ b/WebCore/platform/mac/ImageMac.mm @@ -192,8 +192,10 @@ void Image::draw(GraphicsContext* ctxt, const FloatRect& dstRect, const FloatRec if (m_isSolidColor && m_currentFrame == 0) { if (m_solidColor.alpha() > 0) { + ctxt->save(); ctxt->setCompositeOperation(!m_solidColor.hasAlpha() && compositeOp == CompositeSourceOver ? CompositeCopy : compositeOp); ctxt->fillRect(ir, m_solidColor); + ctxt->restore(); } return; } @@ -277,8 +279,10 @@ void Image::drawTiled(GraphicsContext* ctxt, const FloatRect& destRect, const Fl if (m_isSolidColor && m_currentFrame == 0) { if (m_solidColor.alpha() > 0) { + ctxt->save(); ctxt->setCompositeOperation(!m_solidColor.hasAlpha() && op == CompositeSourceOver ? CompositeCopy : op); ctxt->fillRect(destRect, m_solidColor); + ctxt->restore(); } return; } @@ -361,8 +365,10 @@ void Image::drawTiled(GraphicsContext* ctxt, const FloatRect& dstRect, const Flo if (m_isSolidColor && m_currentFrame == 0) { if (m_solidColor.alpha() > 0) { + ctxt->save(); ctxt->setCompositeOperation(!m_solidColor.hasAlpha() && op == CompositeSourceOver ? CompositeCopy : op); ctxt->fillRect(dstRect, m_solidColor); + ctxt->restore(); } return; } -- 2.36.0