summaryrefslogtreecommitdiffstats
path: root/WebKit/android/jni
diff options
context:
space:
mode:
authorLeon Scroggins <scroggo@google.com>2009-06-23 10:24:09 -0400
committerLeon Scroggins <scroggo@google.com>2009-06-23 10:46:32 -0400
commitdf7ece355deeeb91228aa45d18c84e72f3db44a9 (patch)
treef1820dd4d12b830956de27c13c2fa896d532729c /WebKit/android/jni
parent8611fc4db278833abc9e6691ea03248c0ae7b9b0 (diff)
downloadexternal_webkit-df7ece355deeeb91228aa45d18c84e72f3db44a9.zip
external_webkit-df7ece355deeeb91228aa45d18c84e72f3db44a9.tar.gz
external_webkit-df7ece355deeeb91228aa45d18c84e72f3db44a9.tar.bz2
Fix <select with multiple and/or size > 1.
With the latest WebKit drop we lost a hack we had to make ListBoxes behave like MenuLists. Rather than reviving it, now in WebViewCore check for isListBox(). This makes a click once again open the list so the user can choose the selection. Also disable WebKit's drawing of the text shown, and simply draw it ourselves, so we can draw nothing or the first item selected.
Diffstat (limited to 'WebKit/android/jni')
-rw-r--r--WebKit/android/jni/WebViewCore.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/WebKit/android/jni/WebViewCore.cpp b/WebKit/android/jni/WebViewCore.cpp
index 170e55d..07f9fd4 100644
--- a/WebKit/android/jni/WebViewCore.cpp
+++ b/WebKit/android/jni/WebViewCore.cpp
@@ -1727,7 +1727,7 @@ bool WebViewCore::handleMouseClick(WebCore::Frame* framePtr, WebCore::Node* node
return true;
}
WebCore::RenderObject* renderer = nodePtr->renderer();
- if (renderer && renderer->isMenuList()) {
+ if (renderer && (renderer->isMenuList() || renderer->isListBox())) {
WebCore::HTMLSelectElement* select = static_cast<WebCore::HTMLSelectElement*>(nodePtr);
const WTF::Vector<WebCore::Element*>& listItems = select->listItems();
SkTDArray<const uint16_t*> names;
@@ -1738,7 +1738,7 @@ bool WebViewCore::handleMouseClick(WebCore::Frame* framePtr, WebCore::Node* node
for (int i = 0; i < size; i++) {
if (listItems[i]->hasTagName(WebCore::HTMLNames::optionTag)) {
WebCore::HTMLOptionElement* option = static_cast<WebCore::HTMLOptionElement*>(listItems[i]);
- *names.append() = stringConverter(option->text());
+ *names.append() = stringConverter(option->textIndentedToRespectGroupLabel());
*enabledArray.append() = option->disabled() ? 0 : 1;
if (multiple && option->selected())
*selectedArray.append() = i;