| Index: Source/core/dom/Document.cpp
|
| diff --git a/Source/core/dom/Document.cpp b/Source/core/dom/Document.cpp
|
| index 19d77afcb8e6d2c02e924007454be93d07f6d5fe..bad04404d15cd6edde4902d5e65b57500d5d254b 100644
|
| --- a/Source/core/dom/Document.cpp
|
| +++ b/Source/core/dom/Document.cpp
|
| @@ -4846,9 +4846,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()
|
|
|