From 2c537bf828eacdf90c3e3b45efc61c579a744629 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Tue, 3 Jul 2018 17:26:34 +0000 Subject: Use UnownedPtr<> in cfwl_messagekillfocus.h Also make private member along the way. Change-Id: I08a006a1bcca4e8ca21834dfda695a2d77d0a431 Reviewed-on: https://pdfium-review.googlesource.com/36930 Commit-Queue: Tom Sepez Commit-Queue: dsinclair Reviewed-by: dsinclair --- xfa/fwl/cfwl_combolist.cpp | 4 ++-- xfa/fwl/cfwl_messagekillfocus.cpp | 5 ++++- xfa/fwl/cfwl_messagekillfocus.h | 11 +++++++++-- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/xfa/fwl/cfwl_combolist.cpp b/xfa/fwl/cfwl_combolist.cpp index 004fbb46b9..5aae3cddd4 100644 --- a/xfa/fwl/cfwl_combolist.cpp +++ b/xfa/fwl/cfwl_combolist.cpp @@ -122,8 +122,8 @@ void CFWL_ComboList::OnDropListFocusChanged(CFWL_Message* pMsg, bool bSet) { CFWL_MessageKillFocus* pKill = static_cast(pMsg); CFWL_ComboBox* pOuter = static_cast(m_pOuter); - if (pKill->m_pSetFocus == m_pOuter || - pKill->m_pSetFocus == pOuter->GetComboEdit()) { + if (pKill->IsFocusedOnWidget(m_pOuter) || + pKill->IsFocusedOnWidget(pOuter->GetComboEdit())) { pOuter->ShowDropList(false); } } diff --git a/xfa/fwl/cfwl_messagekillfocus.cpp b/xfa/fwl/cfwl_messagekillfocus.cpp index 55247d1f2e..34c4c053e7 100644 --- a/xfa/fwl/cfwl_messagekillfocus.cpp +++ b/xfa/fwl/cfwl_messagekillfocus.cpp @@ -17,7 +17,10 @@ CFWL_MessageKillFocus::CFWL_MessageKillFocus(CFWL_Widget* pSrcTarget, CFWL_Widget* pDstTarget) : CFWL_Message(CFWL_Message::Type::KillFocus, pSrcTarget, pDstTarget) {} -CFWL_MessageKillFocus::~CFWL_MessageKillFocus() {} +CFWL_MessageKillFocus::CFWL_MessageKillFocus( + const CFWL_MessageKillFocus& that) = default; + +CFWL_MessageKillFocus::~CFWL_MessageKillFocus() = default; std::unique_ptr CFWL_MessageKillFocus::Clone() { return pdfium::MakeUnique(*this); diff --git a/xfa/fwl/cfwl_messagekillfocus.h b/xfa/fwl/cfwl_messagekillfocus.h index d6ca799efb..79aaebed6c 100644 --- a/xfa/fwl/cfwl_messagekillfocus.h +++ b/xfa/fwl/cfwl_messagekillfocus.h @@ -9,18 +9,25 @@ #include +#include "core/fxcrt/unowned_ptr.h" #include "xfa/fwl/cfwl_message.h" class CFWL_MessageKillFocus : public CFWL_Message { public: explicit CFWL_MessageKillFocus(CFWL_Widget* pSrcTarget); CFWL_MessageKillFocus(CFWL_Widget* pSrcTarget, CFWL_Widget* pDstTarget); + CFWL_MessageKillFocus(const CFWL_MessageKillFocus& that); ~CFWL_MessageKillFocus() override; - // CFWL_Message + // CFWL_Message: std::unique_ptr Clone() override; - CFWL_Widget* m_pSetFocus; + bool IsFocusedOnWidget(const CFWL_Widget* pWidget) const { + return pWidget == m_pSetFocus.Get(); + } + + private: + UnownedPtr m_pSetFocus; }; #endif // XFA_FWL_CFWL_MESSAGEKILLFOCUS_H_ -- cgit v1.2.3