diff options
Diffstat (limited to 'fpdfsdk')
-rw-r--r-- | fpdfsdk/cpdfsdk_pageview.cpp | 11 | ||||
-rw-r--r-- | fpdfsdk/cpdfsdk_pageview.h | 1 | ||||
-rw-r--r-- | fpdfsdk/fpdfformfill.cpp | 11 | ||||
-rw-r--r-- | fpdfsdk/fpdfview_c_api_test.c | 1 |
4 files changed, 24 insertions, 0 deletions
diff --git a/fpdfsdk/cpdfsdk_pageview.cpp b/fpdfsdk/cpdfsdk_pageview.cpp index 2155b5d3d8..5bdd720596 100644 --- a/fpdfsdk/cpdfsdk_pageview.cpp +++ b/fpdfsdk/cpdfsdk_pageview.cpp @@ -259,6 +259,17 @@ void CPDFSDK_PageView::ReplaceSelection(const CFX_WideString& text) { } } +bool CPDFSDK_PageView::OnFocus(const CFX_PointF& point, uint32_t nFlag) { + CPDFSDK_Annot::ObservedPtr pAnnot(GetFXWidgetAtPoint(point)); + if (!pAnnot) { + m_pFormFillEnv->KillFocusAnnot(nFlag); + return false; + } + + m_pFormFillEnv->SetFocusAnnot(&pAnnot); + return true; +} + bool CPDFSDK_PageView::OnLButtonDown(const CFX_PointF& point, uint32_t nFlag) { CPDFSDK_Annot::ObservedPtr pAnnot(GetFXWidgetAtPoint(point)); if (!pAnnot) { diff --git a/fpdfsdk/cpdfsdk_pageview.h b/fpdfsdk/cpdfsdk_pageview.h index c23aaa7988..00e90d73e8 100644 --- a/fpdfsdk/cpdfsdk_pageview.h +++ b/fpdfsdk/cpdfsdk_pageview.h @@ -64,6 +64,7 @@ class CPDFSDK_PageView final : public CPDF_Page::View { CFX_WideString GetSelectedText(); void ReplaceSelection(const CFX_WideString& text); + bool OnFocus(const CFX_PointF& point, uint32_t nFlag); bool OnLButtonDown(const CFX_PointF& point, uint32_t nFlag); bool OnLButtonUp(const CFX_PointF& point, uint32_t nFlag); #ifdef PDF_ENABLE_XFA diff --git a/fpdfsdk/fpdfformfill.cpp b/fpdfsdk/fpdfformfill.cpp index b36c1dff23..1b5cc483a8 100644 --- a/fpdfsdk/fpdfformfill.cpp +++ b/fpdfsdk/fpdfformfill.cpp @@ -291,6 +291,17 @@ FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_OnMouseMove(FPDF_FORMHANDLE hHandle, return pPageView->OnMouseMove(CFX_PointF(page_x, page_y), modifier); } +FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_OnFocus(FPDF_FORMHANDLE hHandle, + FPDF_PAGE page, + int modifier, + double page_x, + double page_y) { + CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, page); + if (!pPageView) + return false; + return pPageView->OnFocus(CFX_PointF(page_x, page_y), modifier); +} + FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_OnLButtonDown(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, int modifier, diff --git a/fpdfsdk/fpdfview_c_api_test.c b/fpdfsdk/fpdfview_c_api_test.c index 5bad9c8e7b..6f84f353aa 100644 --- a/fpdfsdk/fpdfview_c_api_test.c +++ b/fpdfsdk/fpdfview_c_api_test.c @@ -181,6 +181,7 @@ int CheckPDFiumCApi() { CHK(FORM_DoDocumentAAction); CHK(FORM_DoPageAAction); CHK(FORM_OnMouseMove); + CHK(FORM_OnFocus); CHK(FORM_OnLButtonDown); CHK(FORM_OnLButtonUp); #ifdef PDF_ENABLE_XFA |