Set wxDidCreatePaintDC to true even if we reused a cached wxPaintDC.
Reusing a cached wxPaintDC should count as painting the window, otherwise we could call DefWindowProc(WM_PAINT) if WM_PAINT was generated from inside EVT_PAINT handler (e.g. by calling wxWindow::Update()) and this validated the entire window and no painting was really done. In particular this fixes redrawing of wxStyledTextCtrl which does call Update() (completely unnecessarily AFAICS) from its EVT_PAINT handler when it wants to fully refresh itself. Closes #13345. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68337 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -225,6 +225,12 @@ wxPaintDCImpl::wxPaintDCImpl( wxDC *owner, wxWindow *window ) :
|
||||
}
|
||||
#endif // wxHAS_PAINT_DEBUG
|
||||
|
||||
// see comments in src/msw/window.cpp where this is defined
|
||||
extern bool wxDidCreatePaintDC;
|
||||
|
||||
wxDidCreatePaintDC = true;
|
||||
|
||||
|
||||
m_window = window;
|
||||
|
||||
// do we have a DC for this window in the cache?
|
||||
@@ -236,11 +242,6 @@ wxPaintDCImpl::wxPaintDCImpl( wxDC *owner, wxWindow *window ) :
|
||||
}
|
||||
else // not in cache, create a new one
|
||||
{
|
||||
// see comments in src/msw/window.cpp where this is defined
|
||||
extern bool wxDidCreatePaintDC;
|
||||
|
||||
wxDidCreatePaintDC = true;
|
||||
|
||||
m_hDC = (WXHDC)::BeginPaint(GetHwndOf(m_window), &g_paintStruct);
|
||||
if (m_hDC)
|
||||
ms_cache.Add(new wxPaintDCInfo(m_window, this));
|
||||
|
Reference in New Issue
Block a user