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