diff options
author | Leon Scroggins <scroggo@google.com> | 2009-06-23 10:24:09 -0400 |
---|---|---|
committer | Leon Scroggins <scroggo@google.com> | 2009-06-23 10:46:32 -0400 |
commit | df7ece355deeeb91228aa45d18c84e72f3db44a9 (patch) | |
tree | f1820dd4d12b830956de27c13c2fa896d532729c /WebKit/android/jni | |
parent | 8611fc4db278833abc9e6691ea03248c0ae7b9b0 (diff) | |
download | external_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.cpp | 4 |
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; |