diff options
author | Henrique Nakashima <hnakashima@chromium.org> | 2018-02-06 21:36:45 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-02-06 21:36:45 +0000 |
commit | bfeab62b37a701dc82f180e49d26c602f96f96f9 (patch) | |
tree | 114a99e1d3c0ea26f7dc15727dae0214125b4c89 /xfa/fwl/cfwl_caret.cpp | |
parent | f3f1869409a59adbfde4b2b546f30c81051aad14 (diff) | |
download | pdfium-bfeab62b37a701dc82f180e49d26c602f96f96f9.tar.xz |
Fix caret not appearing in XFA Edits.
This makes the caret appear (again?), blink, and fixes its positioning
to be a little spaced from the last character.
Known issue: when the edit is empty, the caret is not necessarily
aligned with where the text will be.
Bug: chromium:592750
Change-Id: I950b0ea236db8855c6ed50f48ec1935d97e6ccf8
Reviewed-on: https://pdfium-review.googlesource.com/25451
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Diffstat (limited to 'xfa/fwl/cfwl_caret.cpp')
-rw-r--r-- | xfa/fwl/cfwl_caret.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/xfa/fwl/cfwl_caret.cpp b/xfa/fwl/cfwl_caret.cpp index cd85041d92..03c8ffde68 100644 --- a/xfa/fwl/cfwl_caret.cpp +++ b/xfa/fwl/cfwl_caret.cpp @@ -58,17 +58,21 @@ void CFWL_Caret::DrawWidget(CXFA_Graphics* pGraphics, } void CFWL_Caret::ShowCaret() { - if (m_pTimerInfo) - m_pTimerInfo->StopTimer(); + if (m_pTimerInfo) { + CFWL_TimerInfo* pOldTimerInfo = m_pTimerInfo.Release(); + pOldTimerInfo->StopTimer(); + } + m_pTimerInfo = m_pTimer->StartTimer(kFrequency, true); RemoveStates(FWL_WGTSTATE_Invisible); } void CFWL_Caret::HideCaret() { if (m_pTimerInfo) { - m_pTimerInfo->StopTimer(); - m_pTimerInfo = nullptr; + CFWL_TimerInfo* pOldTimerInfo = m_pTimerInfo.Release(); + pOldTimerInfo->StopTimer(); } + SetStates(FWL_WGTSTATE_Invisible); } |