| Index: fpdfsdk/formfiller/cffl_checkbox.cpp
|
| diff --git a/fpdfsdk/formfiller/cffl_checkbox.cpp b/fpdfsdk/formfiller/cffl_checkbox.cpp
|
| index 01f1a2a08c063b4aedc97f5fd7382962f85aeb5a..334adb68eddd06ec456d91a278943d52d1ee4be6 100644
|
| --- a/fpdfsdk/formfiller/cffl_checkbox.cpp
|
| +++ b/fpdfsdk/formfiller/cffl_checkbox.cpp
|
| @@ -47,15 +47,17 @@ FX_BOOL CFFL_CheckBox::OnChar(CPDFSDK_Annot* pAnnot,
|
|
|
| FX_BOOL bReset = FALSE;
|
| FX_BOOL bExit = FALSE;
|
| - m_pEnv->GetInteractiveFormFiller()->OnButtonUp(m_pWidget, pPageView,
|
| + CPDFSDK_Annot::ObservedPtr pObserved(m_pWidget);
|
| + m_pEnv->GetInteractiveFormFiller()->OnButtonUp(&pObserved, pPageView,
|
| bReset, bExit, nFlags);
|
| - if (bReset)
|
| + if (!pObserved) {
|
| + m_pWidget = nullptr;
|
| return TRUE;
|
| - if (bExit)
|
| + }
|
| + if (bReset || bExit)
|
| return TRUE;
|
|
|
| CFFL_FormFiller::OnChar(pAnnot, nChar, nFlags);
|
| -
|
| if (CPWL_CheckBox* pWnd = (CPWL_CheckBox*)GetPDFWindow(pPageView, TRUE))
|
| pWnd->SetCheck(!pWnd->IsChecked());
|
|
|
|
|