From 0703fa810bc79a335ddfdab3e7661159caf88e2d Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Tue, 13 Sep 2016 14:52:55 -0400 Subject: [Merge to 54] Add observer for BAAnnots from Javascript This Cl moves the observer code from the CPDFSDK_Widget up into the CPDFSDK_Annot base class and then adds a second observer for CPDFSDK_BAAnnot objects. This allows us to attach an observer to the Annot javascript class which will update its internal pointer to the BAAnnot if the BAAnnot is destroyed by the CPDFSDK_PageView being destroyed. BUG=chromium:642307 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/2333383002 . Review-Url: https://codereview.chromium.org/2306663002 --- fpdfsdk/javascript/Field.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'fpdfsdk/javascript/Field.cpp') diff --git a/fpdfsdk/javascript/Field.cpp b/fpdfsdk/javascript/Field.cpp index 0a184d8ef1..64c7735dcf 100644 --- a/fpdfsdk/javascript/Field.cpp +++ b/fpdfsdk/javascript/Field.cpp @@ -268,11 +268,12 @@ void Field::UpdateFormField(CPDFSDK_Document* pDocument, int nFieldType = pFormField->GetFieldType(); if (nFieldType == FIELDTYPE_COMBOBOX || nFieldType == FIELDTYPE_TEXTFIELD) { - for (CPDFSDK_Widget* pWidget : widgets) { + for (CPDFSDK_Annot* pAnnot : widgets) { FX_BOOL bFormatted = FALSE; - CPDFSDK_Widget::Observer observer(&pWidget); + CPDFSDK_Widget* pWidget = static_cast(pAnnot); + CPDFSDK_Widget::Observer observer(&pAnnot); CFX_WideString sValue = pWidget->OnFormat(bFormatted); - if (pWidget) { + if (pAnnot) { pWidget->ResetAppearance(bFormatted ? sValue.c_str() : nullptr, FALSE); } -- cgit v1.2.3