Index: core/src/fpdfdoc/doc_form.cpp |
diff --git a/core/src/fpdfdoc/doc_form.cpp b/core/src/fpdfdoc/doc_form.cpp |
index d695cb98bab8aa6087d163ca5512c24c8fe58a18..1c1966f6e471ce7619f58b9400cff0c2945b35b2 100644 |
--- a/core/src/fpdfdoc/doc_form.cpp |
+++ b/core/src/fpdfdoc/doc_form.cpp |
@@ -903,6 +903,14 @@ CPDF_FormControl* CPDF_InterForm::GetControlAtPoint(CPDF_Page* pPage, FX_FLOAT p |
} |
CPDF_FormControl* pControl; |
if (!m_ControlMap.Lookup(pAnnot, (FX_LPVOID&)pControl)) { |
+ // If there is a link that overlaps the widget, return NULL. |
+ if (pAnnot->GetString("Subtype") == "Link") { |
+ CPDF_Link link(pAnnot); |
+ CPDF_Rect link_rect = link.GetRect(); |
+ if (link_rect.Contains(pdf_x, pdf_y)) { |
+ return NULL; |
+ } |
+ } |
continue; |
} |
CFX_FloatRect rect = pControl->GetRect(); |