X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/30c841c84dce46690499567141b98ffcf5a61b6a..31a8ceaf5f516c67fcb390b67ed5ed9677f91c35:/src/dfb/overlay.cpp diff --git a/src/dfb/overlay.cpp b/src/dfb/overlay.cpp index 740b3c169b..56f3dfb5f1 100644 --- a/src/dfb/overlay.cpp +++ b/src/dfb/overlay.cpp @@ -57,7 +57,8 @@ void wxOverlayImpl::Init(wxWindowDC *dc, int x, int y, int width, int height) m_window = dc->GetWindow(); m_rect = wxRect(x, y, width, height); - m_rect.Offset(m_window->GetClientAreaOrigin()); + if ( wxDynamicCast(dc, wxClientDC) ) + m_rect.Offset(m_window->GetClientAreaOrigin()); // FIXME: create surface with transparency or key color (?) m_surface = @@ -72,13 +73,15 @@ void wxOverlayImpl::Init(wxWindowDC *dc, int x, int y, int width, int height) void wxOverlayImpl::BeginDrawing(wxWindowDC *dc) { - wxPoint origin(m_rect.GetPosition() - m_window->GetClientAreaOrigin()); + wxPoint origin(m_rect.GetPosition()); + if ( wxDynamicCast(dc, wxClientDC) ) + origin -= m_window->GetClientAreaOrigin(); // drawing on overlay "hijacks" existing wxWindowDC rather then using // another DC, so we have to change the DC to draw on the overlay's surface. // Setting m_shouldFlip is done to avoid flipping and drawing of overlays // in ~wxWindowDC (we do it EndDrawing). - dc->Init(m_surface); + dc->DFBInit(m_surface); dc->SetDeviceOrigin(-origin.x, -origin.y); dc->m_shouldFlip = false;