summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering/RenderMenuList.cpp
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2009-08-11 17:01:47 +0100
committerBen Murdoch <benm@google.com>2009-08-11 18:21:02 +0100
commit0bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5 (patch)
tree2943df35f62d885c89d01063cc528dd73b480fea /WebCore/rendering/RenderMenuList.cpp
parent7e7a70bfa49a1122b2597a1e6367d89eb4035eca (diff)
downloadexternal_webkit-0bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5.zip
external_webkit-0bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5.tar.gz
external_webkit-0bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5.tar.bz2
Merge in WebKit r47029.
Diffstat (limited to 'WebCore/rendering/RenderMenuList.cpp')
-rw-r--r--WebCore/rendering/RenderMenuList.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/WebCore/rendering/RenderMenuList.cpp b/WebCore/rendering/RenderMenuList.cpp
index 95de7a2..9d2e7e0 100644
--- a/WebCore/rendering/RenderMenuList.cpp
+++ b/WebCore/rendering/RenderMenuList.cpp
@@ -25,6 +25,7 @@
#include "RenderMenuList.h"
#include "CSSStyleSelector.h"
+#include "Frame.h"
#include "FrameView.h"
#include "HTMLNames.h"
#include "NodeRenderStyle.h"
@@ -296,8 +297,14 @@ void RenderMenuList::hidePopup()
void RenderMenuList::valueChanged(unsigned listIndex, bool fireOnChange)
{
+ // Check to ensure a page navigation has not occurred while
+ // the popup was up.
+ Document* doc = static_cast<Element*>(node())->document();
+ if (!doc || doc != doc->frame()->document())
+ return;
+
SelectElement* select = toSelectElement(static_cast<Element*>(node()));
- select->setSelectedIndex(select->listToOptionIndex(listIndex), true, fireOnChange);
+ select->setSelectedIndexByUser(select->listToOptionIndex(listIndex), true, fireOnChange);
}
String RenderMenuList::itemText(unsigned listIndex) const
@@ -311,6 +318,13 @@ String RenderMenuList::itemText(unsigned listIndex) const
return String();
}
+String RenderMenuList::itemToolTip(unsigned listIndex) const
+{
+ SelectElement* select = toSelectElement(static_cast<Element*>(node()));
+ Element* element = select->listItems()[listIndex];
+ return element->title();
+}
+
bool RenderMenuList::itemIsEnabled(unsigned listIndex) const
{
SelectElement* select = toSelectElement(static_cast<Element*>(node()));