Index: Source/core/html/HTMLDialogElement.cpp |
diff --git a/Source/core/html/HTMLDialogElement.cpp b/Source/core/html/HTMLDialogElement.cpp |
index 42a503d30dcea95d4081a5174ac472d31f69eeed..d77ceb666f0bc692988e0eda70ddde53bd6c838f 100644 |
--- a/Source/core/html/HTMLDialogElement.cpp |
+++ b/Source/core/html/HTMLDialogElement.cpp |
@@ -95,6 +95,7 @@ HTMLDialogElement::HTMLDialogElement(Document& document) |
, m_centeringMode(Uninitialized) |
, m_centeredPosition(0) |
, m_returnValue("") |
+ , m_modal(false) |
{ |
ScriptWrappable::init(this); |
} |
@@ -113,6 +114,12 @@ void HTMLDialogElement::close(const String& returnValue, ExceptionState& excepti |
closeDialog(returnValue); |
} |
+void HTMLDialogElement::removedFrom(ContainerNode* insertionPoint) |
+{ |
+ document().removeFromModalDialogStack(this); |
esprehn
2014/01/21 18:59:05
Remove all this, I don't think you should need the
falken
2014/01/22 06:08:02
OK but we still need removedFrom to reset m_modal.
|
+ HTMLElement::removedFrom(insertionPoint); |
+} |
+ |
void HTMLDialogElement::closeDialog(const String& returnValue) |
{ |
if (!fastHasAttribute(openAttr)) |
@@ -120,7 +127,7 @@ void HTMLDialogElement::closeDialog(const String& returnValue) |
setBooleanAttribute(openAttr, false); |
HTMLDialogElement* activeModalDialog = document().activeModalDialog(); |
- document().removeFromTopLayer(this); |
+ document().removeFromModalDialogStack(this); |
if (activeModalDialog == this) |
inertSubtreesChanged(document()); |
@@ -157,7 +164,7 @@ void HTMLDialogElement::showModal(ExceptionState& exceptionState) |
return; |
} |
- document().addToTopLayer(this); |
+ document().addToModalDialogStack(this); |
setBooleanAttribute(openAttr, true); |
// Throw away the AX cache first, so the subsequent steps don't have a chance of queuing up |