Initialise DC only when needed and deinitilise it properly before, fixes #10543: wxGTK wxDataViewCtrl Assert and Crash

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59375 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling 2009-03-06 18:52:30 +00:00
parent 4aee83345e
commit 874edbb70e

View File

@ -1105,10 +1105,15 @@ gtk_wx_cell_renderer_render (GtkCellRenderer *renderer,
wxRect renderrect( rect.x, rect.y, rect.width, rect.height );
wxWindowDC* dc = (wxWindowDC*) cell->GetDC();
wxWindowDCImpl *impl = (wxWindowDCImpl *) dc->GetImpl();
// Reinitilise GDK window everytime as drawing can also
// be done into DnD drop window.
impl->m_gdkwindow = window;
impl->SetUpDC();
// Reinitilise DC if drawing occurs into a different
// window such as a DnD drop window.
if (window != impl->m_gdkwindow)
{
impl->Destroy();
impl->m_gdkwindow = window;
impl->SetUpDC();
}
int state = 0;
if (flags & GTK_CELL_RENDERER_SELECTED)