Index: pdf/pdfium/pdfium_page.cc |
diff --git a/pdf/pdfium/pdfium_page.cc b/pdf/pdfium/pdfium_page.cc |
index 7d85d36aa315e5447995c168c4e4a86caf7a9d5d..860767a5f422618efd66314ad8673e034f0b196c 100644 |
--- a/pdf/pdfium/pdfium_page.cc |
+++ b/pdf/pdfium/pdfium_page.cc |
@@ -264,7 +264,7 @@ PDFiumPage::Area PDFiumPage::GetCharIndex(const pp::Point& point, |
DCHECK_NE(control_z_order, link_z_order); |
if (control_z_order > link_z_order) { |
*form_type = control; |
- return PDFiumPage::NONSELECTABLE_AREA; |
+ return FormTypeToArea(*form_type); |
} |
// We don't handle all possible link types of the PDF. For example, |
@@ -283,7 +283,7 @@ PDFiumPage::Area PDFiumPage::GetCharIndex(const pp::Point& point, |
return area; |
} else if (control > FPDF_FORMFIELD_UNKNOWN) { |
*form_type = control; |
- return PDFiumPage::NONSELECTABLE_AREA; |
+ return FormTypeToArea(*form_type); |
} |
if (rv < 0) |
@@ -292,6 +292,17 @@ PDFiumPage::Area PDFiumPage::GetCharIndex(const pp::Point& point, |
return GetLink(*char_index, target) != -1 ? WEBLINK_AREA : TEXT_AREA; |
} |
+// static |
+PDFiumPage::Area PDFiumPage::FormTypeToArea(int form_type) { |
+ switch (form_type) { |
+ case FPDF_FORMFIELD_COMBOBOX: |
+ case FPDF_FORMFIELD_TEXTFIELD: |
+ return PDFiumPage::FORM_TEXT_AREA; |
+ default: |
+ return PDFiumPage::NONSELECTABLE_AREA; |
+ } |
+} |
+ |
base::char16 PDFiumPage::GetCharAtIndex(int index) { |
if (!available_) |
return L'\0'; |