From 537115b5a3ceccfe8ce2ca79577b61c5ec31c432 Mon Sep 17 00:00:00 2001 From: Henrique Nakashima Date: Tue, 10 Apr 2018 17:22:15 +0000 Subject: Implement CPDFSDK_XFAWidgetHandler::OnKillFocus. This makes XFA widgets lose focus when a click is performed outside their area. Bug: chromium:820256 Change-Id: I7b70fafdc625089f3340a3494bfd51e5c8d0446d Reviewed-on: https://pdfium-review.googlesource.com/29860 Commit-Queue: Henrique Nakashima Reviewed-by: Ryan Harrison --- fpdfsdk/cpdfsdk_xfawidgethandler.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'fpdfsdk') diff --git a/fpdfsdk/cpdfsdk_xfawidgethandler.cpp b/fpdfsdk/cpdfsdk_xfawidgethandler.cpp index 7eb56570c3..e39f8ceda2 100644 --- a/fpdfsdk/cpdfsdk_xfawidgethandler.cpp +++ b/fpdfsdk/cpdfsdk_xfawidgethandler.cpp @@ -302,6 +302,15 @@ bool CPDFSDK_XFAWidgetHandler::OnSetFocus(CPDFSDK_Annot::ObservedPtr* pAnnot, bool CPDFSDK_XFAWidgetHandler::OnKillFocus(CPDFSDK_Annot::ObservedPtr* pAnnot, uint32_t nFlag) { + CXFA_FFWidget* hWidget = *pAnnot ? (*pAnnot)->GetXFAWidget() : nullptr; + if (!hWidget) + return true; + + CXFA_FFPageView* pXFAPageView = hWidget->GetPageView(); + if (!pXFAPageView) + return true; + + pXFAPageView->GetDocView()->SetFocus(nullptr); return true; } -- cgit v1.2.3