From 07274d7925c07ee9fb09e5439cbca6d17e825044 Mon Sep 17 00:00:00 2001 From: Artur Wieczorek Date: Mon, 14 Mar 2016 21:01:09 +0100 Subject: [PATCH] Allow creating wxGraphicsContext from memory DC with Cairo renderer (wxMSW). Not only paint DC but also memory DC can be used as a source to create wxGraphicsContext with Cairo renderer. --- src/generic/graphicc.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/generic/graphicc.cpp b/src/generic/graphicc.cpp index 9124560092..09583ce5b4 100644 --- a/src/generic/graphicc.cpp +++ b/src/generic/graphicc.cpp @@ -2539,11 +2539,14 @@ wxGraphicsContext * wxCairoRenderer::CreateContextFromNativeContext(void * conte { ENSURE_LOADED_OR_RETURN(NULL); #ifdef __WXMSW__ - if (::GetObjectType((HGDIOBJ)context) == OBJ_DC) - { + DWORD objType = ::GetObjectType((HGDIOBJ)context); + if (objType == 0) + return new wxCairoContext(this, (cairo_t*)context); + + if (objType == OBJ_DC || objType == OBJ_MEMDC) return new wxCairoContext(this, (HDC)context); - } - return new wxCairoContext(this, (cairo_t*)context); + + return NULL; #else return new wxCairoContext(this,(cairo_t*)context); #endif