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