summaryrefslogtreecommitdiff
path: root/xfa/fxfa/cxfa_ffdatetimeedit.h
diff options
context:
space:
mode:
authorHenrique Nakashima <hnakashima@chromium.org>2018-07-16 21:17:46 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-07-16 21:17:46 +0000
commit31781107f6bda92e732fed805f62e8512bc78149 (patch)
tree7a08649ac5a490ce68925b9c762f176ee6629316 /xfa/fxfa/cxfa_ffdatetimeedit.h
parentc30b4e16885c8fd5f59965f48b61ec033ae4691a (diff)
downloadpdfium-31781107f6bda92e732fed805f62e8512bc78149.tar.xz
Fix crash when typing letters into an XFA datetime field.
The root of the issue is that CXFA_FFDateTimeEdit inherits from CXFA_FFTextEdit and methods in the former treat its widget as a CFWL_Edit, while it can be a CFWL_DateTimePicker. Bug: chromium:857521 Change-Id: I764b6c03095b16f6a9cf72ff36768ca4c57c4070 Reviewed-on: https://pdfium-review.googlesource.com/37910 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Diffstat (limited to 'xfa/fxfa/cxfa_ffdatetimeedit.h')
-rw-r--r--xfa/fxfa/cxfa_ffdatetimeedit.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/xfa/fxfa/cxfa_ffdatetimeedit.h b/xfa/fxfa/cxfa_ffdatetimeedit.h
index a549cbb80f..8041b313de 100644
--- a/xfa/fxfa/cxfa_ffdatetimeedit.h
+++ b/xfa/fxfa/cxfa_ffdatetimeedit.h
@@ -16,6 +16,7 @@ enum XFA_DATETIMETYPE {
XFA_DATETIMETYPE_DateAndTime
};
+class CFWL_DateTimePicker;
class CFWL_Event;
class CFWL_Widget;
@@ -35,12 +36,31 @@ class CXFA_FFDateTimeEdit : public CXFA_FFTextEdit {
int32_t iMonth,
int32_t iDay);
+ // CXFA_FFWidget
+ bool CanUndo() override;
+ bool CanRedo() override;
+ bool Undo() override;
+ bool Redo() override;
+ bool CanCopy() override;
+ bool CanCut() override;
+ bool CanPaste() override;
+ bool CanSelectAll() override;
+ Optional<WideString> Copy() override;
+ Optional<WideString> Cut() override;
+ bool Paste(const WideString& wsPaste) override;
+ void SelectAll() override;
+ void Delete() override;
+ void DeSelect() override;
+ WideString GetText() override;
+
private:
bool PtInActiveRect(const CFX_PointF& point) override;
bool CommitData() override;
bool UpdateFWLData() override;
bool IsDataChanged() override;
+ CFWL_DateTimePicker* GetPickerWidget();
+
uint32_t GetAlignment();
};