summaryrefslogtreecommitdiff
path: root/fpdfsdk/pwl/cpwl_wnd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'fpdfsdk/pwl/cpwl_wnd.cpp')
-rw-r--r--fpdfsdk/pwl/cpwl_wnd.cpp27
1 files changed, 13 insertions, 14 deletions
diff --git a/fpdfsdk/pwl/cpwl_wnd.cpp b/fpdfsdk/pwl/cpwl_wnd.cpp
index 8782e85a14..a561b2de60 100644
--- a/fpdfsdk/pwl/cpwl_wnd.cpp
+++ b/fpdfsdk/pwl/cpwl_wnd.cpp
@@ -277,33 +277,32 @@ void CPWL_Wnd::DrawChildAppearance(CFX_RenderDevice* pDevice,
}
bool CPWL_Wnd::InvalidateRect(CFX_FloatRect* pRect) {
- ObservedPtr thisObserved(this);
- if (!IsValid())
+ if (!IsValid())
return true;
+ ObservedPtr thisObserved(this);
CFX_FloatRect rcRefresh = pRect ? *pRect : GetWindowRect();
-
if (!HasFlag(PWS_NOREFRESHCLIP)) {
CFX_FloatRect rcClip = GetClipRect();
- if (!rcClip.IsEmpty()) {
+ if (!rcClip.IsEmpty())
rcRefresh.Intersect(rcClip);
- }
}
CFX_FloatRect rcWin = PWLtoWnd(rcRefresh);
rcWin.Inflate(1, 1);
rcWin.Normalize();
- if (CFX_SystemHandler* pSH = GetSystemHandler()) {
- if (CPDFSDK_Widget* widget = static_cast<CPDFSDK_Widget*>(
- m_CreationParams.pAttachedWidget.Get())) {
- pSH->InvalidateRect(widget, rcWin);
- if (!thisObserved)
- return false;
- }
- }
+ CFX_SystemHandler* pSH = GetSystemHandler();
+ if (!pSH)
+ return true;
- return true;
+ CPDFSDK_Widget* widget =
+ ToCPDFSDKWidget(m_CreationParams.pAttachedWidget.Get());
+ if (!widget)
+ return true;
+
+ pSH->InvalidateRect(widget, rcWin);
+ return !!thisObserved;
}
#define PWL_IMPLEMENT_KEY_METHOD(key_method_name) \