summaryrefslogtreecommitdiff
path: root/xfa/fwl/cfwl_caret.cpp
diff options
context:
space:
mode:
authorHenrique Nakashima <hnakashima@chromium.org>2018-02-06 21:36:45 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-02-06 21:36:45 +0000
commitbfeab62b37a701dc82f180e49d26c602f96f96f9 (patch)
tree114a99e1d3c0ea26f7dc15727dae0214125b4c89 /xfa/fwl/cfwl_caret.cpp
parentf3f1869409a59adbfde4b2b546f30c81051aad14 (diff)
downloadpdfium-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.cpp12
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);
}