Bug 22472

Summary: Selection is not completely erased when a replaced element moves
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: Layout and RenderingAssignee: Simon Fraser (smfr) <simon.fraser>
Status: RESOLVED FIXED    
Severity: Normal CC: mitz
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Mac   
OS: OS X 10.5   
Bug Depends on:    
Bug Blocks: 15739    
Attachments:
Description Flags
Testcase
none
Patch, testcase, changelog hyatt: review+

Simon Fraser (smfr)
Reported 2008-11-24 16:48:11 PST
When a selected replaced element moves, then the selection is not fully repainted.
Attachments
Testcase (964 bytes, text/html)
2008-11-24 16:48 PST, Simon Fraser (smfr)
no flags
Patch, testcase, changelog (7.03 KB, patch)
2008-11-24 18:40 PST, Simon Fraser (smfr)
hyatt: review+
Simon Fraser (smfr)
Comment 1 2008-11-24 16:48:43 PST
Created attachment 25459 [details] Testcase
mitz
Comment 2 2008-11-24 17:47:34 PST
The selection rect for the relpositioned element doesn't make much sense -- there is no good reason to extend the selection blow the element in that case, because the line doesn't extend that far.
Simon Fraser (smfr)
Comment 3 2008-11-24 18:40:13 PST
Created attachment 25466 [details] Patch, testcase, changelog Note that the localSelectionRect() refactor will also be used in the fix for bug 15739.
Simon Fraser (smfr)
Comment 4 2008-11-24 18:43:23 PST
This patch blows out absoluteClippedOverflowRect() to envelop the selection rect. If you'd prefer we change the selection rect for positioned/transformed replaced elements, I can do that too (just use overflowRect()?). Note that it will cause a replaced with position:relative and no offset to render selection slightly differently.
Dave Hyatt
Comment 5 2008-12-02 12:32:04 PST
Comment on attachment 25466 [details] Patch, testcase, changelog r=me
Simon Fraser (smfr)
Comment 6 2008-12-02 15:15:45 PST
Committed r38922 M WebCore/ChangeLog M WebCore/rendering/RenderReplaced.h M WebCore/rendering/RenderReplaced.cpp A LayoutTests/platform/mac/fast/repaint/selected-replaced-expected.png A LayoutTests/platform/mac/fast/repaint/selected-replaced-expected.txt A LayoutTests/platform/mac/fast/repaint/selected-replaced-expected.checksum M LayoutTests/ChangeLog A LayoutTests/fast/repaint/selected-replaced.html r38922 = 2e3c814163128d96700fe09f2b57c571b0036c57 (trunk)
Note You need to log in before you can comment on or make changes to this bug.