| 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() {
|
| + 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();
|
|
|