]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/overlaycmn.cpp
fix memory leak in wxScreenDC, fixes #13249
[wxWidgets.git] / src / common / overlaycmn.cpp
index 0551e88cc7fadde775af7e8bb4667f0f2e4603b5..f08cb238e55efda4bfb844045a66d76f997bfdd2 100644 (file)
@@ -53,24 +53,24 @@ bool wxOverlay::IsOk()
     return m_impl->IsOk();
 }
 
     return m_impl->IsOk();
 }
 
-void wxOverlay::Init( wxWindowDC* dc, int x , int y , int width , int height )
+void wxOverlay::Init( wxDC* dc, int x , int y , int width , int height )
 {
     m_impl->Init(dc, x, y, width, height);
 }
 
 {
     m_impl->Init(dc, x, y, width, height);
 }
 
-void wxOverlay::BeginDrawing( wxWindowDC* dc)
+void wxOverlay::BeginDrawing( wxDC* dc)
 {
     m_impl->BeginDrawing(dc);
     m_inDrawing = true ;
 }
 
 {
     m_impl->BeginDrawing(dc);
     m_inDrawing = true ;
 }
 
-void wxOverlay::EndDrawing( wxWindowDC* dc)
+void wxOverlay::EndDrawing( wxDC* dc)
 {
     m_impl->EndDrawing(dc);
     m_inDrawing = false ;
 }
 
 {
     m_impl->EndDrawing(dc);
     m_inDrawing = false ;
 }
 
-void wxOverlay::Clear( wxWindowDC* dc)
+void wxOverlay::Clear( wxDC* dc)
 {
     m_impl->Clear(dc);
 }
 {
     m_impl->Clear(dc);
 }
@@ -86,13 +86,13 @@ void wxOverlay::Reset()
 // wxDCOverlay
 // ----------------------------------------------------------------------------
 
 // wxDCOverlay
 // ----------------------------------------------------------------------------
 
-wxDCOverlay::wxDCOverlay(wxOverlay &overlay, wxWindowDC *dc, int x , int y , int width , int height) :
+wxDCOverlay::wxDCOverlay(wxOverlay &overlay, wxDC *dc, int x , int y , int width , int height) :
     m_overlay(overlay)
 {
     Init(dc, x, y, width, height);
 }
 
     m_overlay(overlay)
 {
     Init(dc, x, y, width, height);
 }
 
-wxDCOverlay::wxDCOverlay(wxOverlay &overlay, wxWindowDC *dc) :
+wxDCOverlay::wxDCOverlay(wxOverlay &overlay, wxDC *dc) :
     m_overlay(overlay)
 {
     int width;
     m_overlay(overlay)
 {
     int width;
@@ -106,7 +106,7 @@ wxDCOverlay::~wxDCOverlay()
     m_overlay.EndDrawing(m_dc);
 }
 
     m_overlay.EndDrawing(m_dc);
 }
 
-void wxDCOverlay::Init(wxWindowDC *dc, int x , int y , int width , int height )
+void wxDCOverlay::Init(wxDC *dc, int x , int y , int width , int height )
 {
     m_dc = dc ;
     if ( !m_overlay.IsOk() )
 {
     m_dc = dc ;
     if ( !m_overlay.IsOk() )
@@ -129,9 +129,7 @@ void wxDCOverlay::Clear()
 
 wxOverlayImpl::wxOverlayImpl()
 {
 
 wxOverlayImpl::wxOverlayImpl()
 {
-#if defined(__WXGTK__) || defined(__WXMSW__)
      m_window = NULL ;
      m_window = NULL ;
-#endif
      m_x = m_y = m_width = m_height = 0 ;
 }
 
      m_x = m_y = m_width = m_height = 0 ;
 }
 
@@ -141,25 +139,12 @@ wxOverlayImpl::~wxOverlayImpl()
 
 bool wxOverlayImpl::IsOk()
 {
 
 bool wxOverlayImpl::IsOk()
 {
-    return m_bmpSaved.Ok() ;
+    return m_bmpSaved.IsOk() ;
 }
 
 }
 
-void wxOverlayImpl::Init( wxWindowDC* dc, int x , int y , int width , int height )
+void wxOverlayImpl::Init( wxDC* dc, int x , int y , int width , int height )
 {
 {
-#if defined(__WXGTK20__)
-#if wxUSE_NEW_DC
-    wxImplDC *impl = dc->GetImpl();
-    wxGTKWindowImplDC *gtk_impl = wxDynamicCast( impl, wxGTKWindowImplDC );
-    if (gtk_impl)
-        m_window = gtk_impl->m_owningWindow;
-#else
-    m_window = dc->m_owningWindow;
-#endif
-#elif defined(__WXGTK__)
-    m_window = dc->m_owner;
-#elif defined(__WXMSW__)
     m_window = dc->GetWindow();
     m_window = dc->GetWindow();
-#endif
     wxMemoryDC dcMem ;
     m_bmpSaved.Create( width, height );
     dcMem.SelectObject( m_bmpSaved );
     wxMemoryDC dcMem ;
     m_bmpSaved.Create( width, height );
     dcMem.SelectObject( m_bmpSaved );
@@ -167,17 +152,12 @@ void wxOverlayImpl::Init( wxWindowDC* dc, int x , int y , int width , int height
     m_y = y ;
     m_width = width ;
     m_height = height ;
     m_y = y ;
     m_width = width ;
     m_height = height ;
-#if defined(__WXGTK__) && !defined(__WX_DC_BLIT_FIXED__)
-    wxPoint pt = dc->GetDeviceOrigin();
-    x += pt.x;
-    y += pt.y;
-#endif // broken wxGTK wxDC::Blit
     dcMem.Blit(0, 0, m_width, m_height,
         dc, x, y);
     dcMem.SelectObject( wxNullBitmap );
 }
 
     dcMem.Blit(0, 0, m_width, m_height,
         dc, x, y);
     dcMem.SelectObject( wxNullBitmap );
 }
 
-void wxOverlayImpl::Clear(wxWindowDC* dc)
+void wxOverlayImpl::Clear(wxDC* dc)
 {
     wxMemoryDC dcMem ;
     dcMem.SelectObject( m_bmpSaved );
 {
     wxMemoryDC dcMem ;
     dcMem.SelectObject( m_bmpSaved );
@@ -190,11 +170,11 @@ void wxOverlayImpl::Reset()
     m_bmpSaved = wxBitmap();
 }
 
     m_bmpSaved = wxBitmap();
 }
 
-void wxOverlayImpl::BeginDrawing(wxWindowDC*  WXUNUSED(dc))
+void wxOverlayImpl::BeginDrawing(wxDC*  WXUNUSED(dc))
 {
 }
 
 {
 }
 
-void wxOverlayImpl::EndDrawing(wxWindowDC* WXUNUSED(dc))
+void wxOverlayImpl::EndDrawing(wxDC* WXUNUSED(dc))
 {
 }
 
 {
 }