]> git.saurik.com Git - wxWidgets.git/commitdiff
Initialise DC only when needed and deinitilise it properly before, fixes #10543:...
authorRobert Roebling <robert@roebling.de>
Fri, 6 Mar 2009 18:52:30 +0000 (18:52 +0000)
committerRobert Roebling <robert@roebling.de>
Fri, 6 Mar 2009 18:52:30 +0000 (18:52 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59375 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/gtk/dataview.cpp

index 4e7fc719a47a9415e679ed3836f7ec03f23a49c6..9277e9fec8b8f48ea66e27be7be5cd2bb498641b 100644 (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)