Closed
Bug 369992
Opened 19 years ago
Closed 19 years ago
Areas previously occupied by a foreignObject aren't repainted
Categories
(Core :: SVG, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: jwatt, Assigned: jwatt)
Details
(Keywords: testcase)
Attachments
(2 files, 2 obsolete files)
|
682 bytes,
image/svg+xml
|
Details | |
|
4.08 KB,
patch
|
tor
:
review+
tor
:
superreview+
|
Details | Diff | Splinter Review |
When a foreignObject is moved, the area it previously covered is not repainted. The content of the foreignObject then appears in two places.
| Assignee | ||
Updated•19 years ago
|
Assignee: general → jwatt
| Assignee | ||
Comment 1•19 years ago
|
||
So the only possible caller of nsSVGDisplayContainerFrame::UpdateCoveredRegion is nsSVGMarkerFrame::RegionMark. Why doesn't anyone else need to call it? Alternatively, is it still necessary to call it there at all?
| Assignee | ||
Comment 2•19 years ago
|
||
Anyway, I guess nsSVGForeignObjectFrame should be doing something more like nsSVGPathGeometryFrame. The current problem is that the old area isn't invalidated before the covered region mRect is updated.
Attachment #254829 -
Flags: superreview?(tor)
Attachment #254829 -
Flags: review?(tor)
Comment on attachment 254829 [details] [diff] [review]
patch
This will need updating for bug 369911, and NotifyRedrawUnsuspended should probably check the SVG_DIRTY bit.
| Assignee | ||
Comment 4•19 years ago
|
||
Yeah, that's a fairly trivial update from Robert's or my side.
Attachment #254829 -
Attachment is obsolete: true
Attachment #254835 -
Flags: superreview?(tor)
Attachment #254835 -
Flags: review?(tor)
Attachment #254829 -
Flags: superreview?(tor)
Attachment #254829 -
Flags: review?(tor)
| Assignee | ||
Comment 5•19 years ago
|
||
Robert landed his fix for bug 369911. Here's the updated patch.
Attachment #254835 -
Attachment is obsolete: true
Attachment #254931 -
Flags: superreview?(tor)
Attachment #254931 -
Flags: review?(tor)
Attachment #254835 -
Flags: superreview?(tor)
Attachment #254835 -
Flags: review?(tor)
Comment 6•19 years ago
|
||
I suspect Bug 358718 is a duplicate of this.
| Assignee | ||
Comment 7•19 years ago
|
||
No, that bug is invalid.
Comment on attachment 254931 [details] [diff] [review]
patch v2 updated to tip
> nsSVGForeignObjectFrame::NotifyRedrawUnsuspended()
> {
>- if (!(mParent->GetStateBits() & NS_STATE_SVG_NONDISPLAY_CHILD))
>- FlushDirtyRegion();
>+ if (!(mParent->GetStateBits() & NS_STATE_SVG_NONDISPLAY_CHILD)) {
>+ if (GetStateBits() & NS_STATE_SVG_DIRTY) {
>+ UpdateGraphic();
>+ }
>+ else {
Prevailing mozilla style is "} else {".
Attachment #254931 -
Flags: superreview?(tor)
Attachment #254931 -
Flags: superreview+
Attachment #254931 -
Flags: review?(tor)
Attachment #254931 -
Flags: review+
| Assignee | ||
Comment 9•19 years ago
|
||
Checked in with style change.
Status: NEW → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
| Assignee | ||
Comment 10•18 years ago
|
||
Reftest is:
http://lxr.mozilla.org/seamonkey/source/layout/reftests/svg/foreignObject-move-repaint-01.svg
Flags: in-testsuite+
You need to log in
before you can comment on or make changes to this bug.
Description
•