Chromium Code Reviews| Index: xfa/fwl/core/ifwl_widget.cpp |
| diff --git a/xfa/fwl/core/ifwl_widget.cpp b/xfa/fwl/core/ifwl_widget.cpp |
| index eb8b1281e96ba5014475bdaec8c8f358e87a2017..da90c4892d25ddc6d93b59f1ac2e9bec3f7781c7 100644 |
| --- a/xfa/fwl/core/ifwl_widget.cpp |
| +++ b/xfa/fwl/core/ifwl_widget.cpp |
| @@ -100,10 +100,9 @@ FWL_Error IFWL_Widget::SetWidgetRect(const CFX_RectF& rect) { |
| ev.m_pSrcTarget = this; |
| ev.m_rtOld = rtOld; |
| ev.m_rtNew = rect; |
| - IFWL_WidgetDelegate* pDelegate = SetDelegate(nullptr); |
| - if (pDelegate) { |
| + |
| + if (IFWL_WidgetDelegate* pDelegate = GetCurrentDelegate()) |
| pDelegate->OnProcessEvent(&ev); |
| - } |
| } |
| return FWL_Error::Succeeded; |
| } |
| @@ -353,16 +352,14 @@ FWL_Error IFWL_Widget::SetThemeProvider(IFWL_ThemeProvider* pThemeProvider) { |
| return FWL_Error::Succeeded; |
| } |
| -IFWL_WidgetDelegate* IFWL_Widget::SetDelegate(IFWL_WidgetDelegate* pDelegate) { |
| - if (!m_pCurDelegate) { |
| +IFWL_WidgetDelegate* IFWL_Widget::GetCurrentDelegate() { |
|
Tom Sepez
2016/10/31 19:12:33
This is still a little weird in that I'd expect Ge
dsinclair
2016/10/31 19:54:50
It happens in the CXFA_FF* methods. The issue is t
|
| + if (!m_pCurDelegate) |
| m_pCurDelegate = m_pDelegate; |
| - } |
| - if (!pDelegate) { |
| - return m_pCurDelegate; |
| - } |
| - IFWL_WidgetDelegate* pOldDelegate = m_pCurDelegate; |
| + return m_pCurDelegate; |
| +} |
| + |
| +void IFWL_Widget::SetCurrentDelegate(IFWL_WidgetDelegate* pDelegate) { |
| m_pCurDelegate = pDelegate; |
| - return pOldDelegate; |
| } |
| const IFWL_App* IFWL_Widget::GetOwnerApp() const { |
| @@ -727,8 +724,7 @@ void IFWL_Widget::DispatchKeyEvent(CFWL_MsgKey* pNote) { |
| void IFWL_Widget::DispatchEvent(CFWL_Event* pEvent) { |
| if (m_pOuter) { |
| - IFWL_WidgetDelegate* pDelegate = m_pOuter->SetDelegate(nullptr); |
| - pDelegate->OnProcessEvent(pEvent); |
| + m_pOuter->GetCurrentDelegate()->OnProcessEvent(pEvent); |
| return; |
| } |
| const IFWL_App* pApp = GetOwnerApp(); |