| Index: Source/core/dom/Document.cpp
|
| diff --git a/Source/core/dom/Document.cpp b/Source/core/dom/Document.cpp
|
| index 189f09e2622f96b38ed90d0ce34e5ecc5b927c68..2a30869c184dc9437ecd0ba9b14096efde55d695 100644
|
| --- a/Source/core/dom/Document.cpp
|
| +++ b/Source/core/dom/Document.cpp
|
| @@ -4875,9 +4875,15 @@ void Document::removeFromTopLayer(Element* element)
|
|
|
| HTMLDialogElement* Document::activeModalDialog() const
|
| {
|
| - if (m_topLayerElements.isEmpty())
|
| - return 0;
|
| - return toHTMLDialogElement(m_topLayerElements.last().get());
|
| + Vector<RefPtr<Element> >::const_reverse_iterator end = m_topLayerElements.rend();
|
| + for (Vector<RefPtr<Element> >::const_reverse_iterator it = m_topLayerElements.rbegin(); it != end; ++it) {
|
| + if (!it->get()->hasTagName(dialogTag))
|
| + continue;
|
| + HTMLDialogElement* dialog = toHTMLDialogElement(it->get());
|
| + if (dialog->isModal())
|
| + return dialog;
|
| + }
|
| + return 0;
|
| }
|
|
|
| void Document::webkitExitPointerLock()
|
|
|