diff options
author | Ben Murdoch <benm@google.com> | 2011-01-16 13:59:45 +0000 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2011-01-16 14:14:41 +0000 |
commit | 8a26975f9657a07318a10d481d7f332dad759325 (patch) | |
tree | 3d4270ff2d0aa27bdbb26e83c1de9d6ac18cb4fc /WebCore/html/HTMLCanvasElement.cpp | |
parent | e137c43847f22807f1276afc87027711cc3f4e77 (diff) | |
download | external_webkit-8a26975f9657a07318a10d481d7f332dad759325.zip external_webkit-8a26975f9657a07318a10d481d7f332dad759325.tar.gz external_webkit-8a26975f9657a07318a10d481d7f332dad759325.tar.bz2 |
Merge WebKit at Chromium 9.0.597.69: Trivial merge by Git.
http://svn.webkit.org/repository/webkit/branches/chromium/597/WebCore@75681
Change-Id: Ibe552cf7af31f74b81e337eadf3d3b73a53daf60
Diffstat (limited to 'WebCore/html/HTMLCanvasElement.cpp')
-rw-r--r-- | WebCore/html/HTMLCanvasElement.cpp | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/WebCore/html/HTMLCanvasElement.cpp b/WebCore/html/HTMLCanvasElement.cpp index fea70d1..e8ffe5e 100644 --- a/WebCore/html/HTMLCanvasElement.cpp +++ b/WebCore/html/HTMLCanvasElement.cpp @@ -71,7 +71,6 @@ static const float MaxSkiaDim = 32767.0F; // Maximum width/height in CSS pixels. HTMLCanvasElement::HTMLCanvasElement(const QualifiedName& tagName, Document* document) : HTMLElement(tagName, document) - , m_observer(0) , m_size(DefaultWidth, DefaultHeight) , m_ignoreReset(false) , m_pageScaleFactor(document->frame() ? document->frame()->page()->chrome()->scaleFactor() : 1) @@ -93,8 +92,9 @@ PassRefPtr<HTMLCanvasElement> HTMLCanvasElement::create(const QualifiedName& tag HTMLCanvasElement::~HTMLCanvasElement() { - if (m_observer) - m_observer->canvasDestroyed(this); + HashSet<CanvasObserver*>::iterator end = m_observers.end(); + for (HashSet<CanvasObserver*>::iterator it = m_observers.begin(); it != end; ++it) + (*it)->canvasDestroyed(this); } void HTMLCanvasElement::parseMappedAttribute(Attribute* attr) @@ -117,6 +117,16 @@ RenderObject* HTMLCanvasElement::createRenderer(RenderArena* arena, RenderStyle* return HTMLElement::createRenderer(arena, style); } +void HTMLCanvasElement::addObserver(CanvasObserver* observer) +{ + m_observers.add(observer); +} + +void HTMLCanvasElement::removeObserver(CanvasObserver* observer) +{ + m_observers.remove(observer); +} + void HTMLCanvasElement::setHeight(int value) { setAttribute(heightAttr, String::number(value)); @@ -200,8 +210,9 @@ void HTMLCanvasElement::didDraw(const FloatRect& rect) ro->repaintRectangle(enclosingIntRect(m_dirtyRect)); } - if (m_observer) - m_observer->canvasChanged(this, rect); + HashSet<CanvasObserver*>::iterator end = m_observers.end(); + for (HashSet<CanvasObserver*>::iterator it = m_observers.begin(); it != end; ++it) + (*it)->canvasChanged(this, rect); } void HTMLCanvasElement::reset() @@ -238,8 +249,9 @@ void HTMLCanvasElement::reset() } } - if (m_observer) - m_observer->canvasResized(this); + HashSet<CanvasObserver*>::iterator end = m_observers.end(); + for (HashSet<CanvasObserver*>::iterator it = m_observers.begin(); it != end; ++it) + (*it)->canvasResized(this); } void HTMLCanvasElement::paint(GraphicsContext* context, const IntRect& r) |