From d27f392c79ce53390f9de36778bb20f73f3e9324 Mon Sep 17 00:00:00 2001 From: Henrique Nakashima Date: Tue, 10 Apr 2018 16:10:36 +0000 Subject: Break down CXFA_FFWidget::On{L|R}ButtonDown() into two steps. The first step, AcceptsFocusOnButtonDown(), returns whether the widget wants focus on a mouse click. The second step, On{L|R}ButtonDown(), handles the click after focus has been assigned. Bug: chromium:820256 Change-Id: I9da1f1a930f198fc17b24acb7f1e3e6ef7f12ae4 Reviewed-on: https://pdfium-review.googlesource.com/29951 Reviewed-by: Ryan Harrison Commit-Queue: Henrique Nakashima --- xfa/fxfa/cxfa_fftext.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'xfa/fxfa/cxfa_fftext.cpp') diff --git a/xfa/fxfa/cxfa_fftext.cpp b/xfa/fxfa/cxfa_fftext.cpp index a446993520..5d6152e7a4 100644 --- a/xfa/fxfa/cxfa_fftext.cpp +++ b/xfa/fxfa/cxfa_fftext.cpp @@ -99,7 +99,12 @@ bool CXFA_FFText::PerformLayout() { return true; } -bool CXFA_FFText::OnLButtonDown(uint32_t dwFlags, const CFX_PointF& point) { +bool CXFA_FFText::AcceptsFocusOnButtonDown(uint32_t dwFlags, + const CFX_PointF& point, + FWL_MouseCommand command) { + if (command != FWL_MouseCommand::LeftButtonDown) + return false; + if (!GetRectWithoutRotate().Contains(point)) return false; @@ -107,10 +112,13 @@ bool CXFA_FFText::OnLButtonDown(uint32_t dwFlags, const CFX_PointF& point) { if (!wsURLContent) return false; - SetButtonDown(true); return true; } +void CXFA_FFText::OnLButtonDown(uint32_t dwFlags, const CFX_PointF& point) { + SetButtonDown(true); +} + bool CXFA_FFText::OnMouseMove(uint32_t dwFlags, const CFX_PointF& point) { return GetRectWithoutRotate().Contains(point) && !!GetLinkURLAtPoint(point); } -- cgit v1.2.3