WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
17840
[Transforms] Modifying transform values on relatively positioned elements fails to redraw
https://bugs.webkit.org/show_bug.cgi?id=17840
Summary
[Transforms] Modifying transform values on relatively positioned elements fai...
David Beck
Reported
2008-03-13 21:47:53 PDT
When changing the the value of a transform, such as rotate, on an element that has been positioned relatively, the areas outside where the element would be if it was not positioned at all, witll not change from the previous value. I encountered this using the nightly build from 3-13-08 on Mac OS X 10.5.2
Attachments
Example page
(953 bytes, text/html)
2008-03-13 21:49 PDT
,
David Beck
no flags
Details
Simpler testcase
(917 bytes, text/html)
2008-11-11 20:56 PST
,
Simon Fraser (smfr)
no flags
Details
Testcase to exercise the offsetForPositionedInContainer() code path
(1.17 KB, text/html)
2008-11-11 23:02 PST
,
Simon Fraser (smfr)
no flags
Details
Patch
(12.26 KB, patch)
2008-11-11 23:27 PST
,
Simon Fraser (smfr)
hyatt
: review+
Details
Formatted Diff
Diff
Followup patch to tidy up RenderBox::computeAbsoluteRepaintRect()
(5.58 KB, patch)
2008-11-11 23:32 PST
,
Simon Fraser (smfr)
hyatt
: review+
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
David Beck
Comment 1
2008-03-13 21:49:59 PDT
Created
attachment 19755
[details]
Example page Example of when the failure occurs
Simon Fraser (smfr)
Comment 2
2008-11-11 20:56:24 PST
Created
attachment 25084
[details]
Simpler testcase
Simon Fraser (smfr)
Comment 3
2008-11-11 23:02:39 PST
Created
attachment 25088
[details]
Testcase to exercise the offsetForPositionedInContainer() code path
Simon Fraser (smfr)
Comment 4
2008-11-11 23:27:19 PST
Created
attachment 25089
[details]
Patch In RenderBox::computeAbsoluteRepaintRect(), the transform block clobbered topLeft after it had been adjusted for relative positioning, and for the offsetForPositionedInContainer(). The patch moves the topLeft adjustments until after the transform has been applied.
Simon Fraser (smfr)
Comment 5
2008-11-11 23:32:18 PST
Created
attachment 25090
[details]
Followup patch to tidy up RenderBox::computeAbsoluteRepaintRect() This is a follow-up patch that clean up RenderBox::computeAbsoluteRepaintRect(): * Do early return of container() is null * if/else on style()->position() * Make use of layer()->scrolledContentOffset()
Dave Hyatt
Comment 6
2008-11-12 11:31:34 PST
Comment on
attachment 25089
[details]
Patch r=me
Dave Hyatt
Comment 7
2008-11-12 11:32:24 PST
Comment on
attachment 25090
[details]
Followup patch to tidy up RenderBox::computeAbsoluteRepaintRect() r=me
Simon Fraser (smfr)
Comment 8
2008-11-12 12:23:19 PST
First patch: Committed
r38338
M WebCore/rendering/RenderBox.cpp M WebCore/ChangeLog A LayoutTests/platform/mac/fast/repaint/transform-relative-position-expected.txt A LayoutTests/platform/mac/fast/repaint/transform-absolute-in-positioned-container-expected.checksum A LayoutTests/platform/mac/fast/repaint/transform-relative-position-expected.checksum A LayoutTests/platform/mac/fast/repaint/transform-absolute-in-positioned-container-expected.png A LayoutTests/platform/mac/fast/repaint/transform-absolute-in-positioned-container-expected.txt A LayoutTests/platform/mac/fast/repaint/transform-relative-position-expected.png M LayoutTests/ChangeLog A LayoutTests/fast/repaint/transform-relative-position.html A LayoutTests/fast/repaint/transform-absolute-in-positioned-container.html
r38338
= 71b2cc0a2f9a6d581a875f1c054e89e4e66a1d8c (trunk) I fixed the tests to be real repaint tests.
Simon Fraser (smfr)
Comment 9
2008-11-12 12:29:07 PST
Second patch: Committed
r38339
M WebCore/rendering/RenderBox.cpp M WebCore/ChangeLog
r38339
= a9261be41e86e2e97995671feb4eef8b3eaa2e45 (trunk)
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug