Module: wine
Branch: master
Commit: 9bc5946cdedda3925f958667683d092f2ed4ea2e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=9bc5946cdedda3925f9586676…
Author: Dmitry Timoshkov <dmitry(a)codeweavers.com>
Date: Thu Feb 24 18:19:56 2011 +0800
gdi32: Use graphics mode specified at the EMF creation time when playing EMR_EXTTEXTOUT record.
---
dlls/gdi32/enhmetafile.c | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/dlls/gdi32/enhmetafile.c b/dlls/gdi32/enhmetafile.c
index 15f7c1b..b8863fd 100644
--- a/dlls/gdi32/enhmetafile.c
+++ b/dlls/gdi32/enhmetafile.c
@@ -1133,6 +1133,7 @@ BOOL WINAPI PlayEnhMetaFileRecord(
const EMREXTTEXTOUTA *pExtTextOutA = (const EMREXTTEXTOUTA *)mr;
RECT rc;
const INT *dx = NULL;
+ int old_mode;
rc.left = pExtTextOutA->emrtext.rcl.left;
rc.top = pExtTextOutA->emrtext.rcl.top;
@@ -1142,6 +1143,11 @@ BOOL WINAPI PlayEnhMetaFileRecord(
pExtTextOutA->emrtext.ptlReference.x, pExtTextOutA->emrtext.ptlReference.y,
rc.left, rc.top, rc.right, rc.bottom, pExtTextOutA->emrtext.fOptions);
+ old_mode = SetGraphicsMode(hdc, pExtTextOutA->iGraphicsMode);
+ /* Reselect the font back into the dc so that the transformation
+ gets updated. */
+ SelectObject(hdc, GetCurrentObject(hdc, OBJ_FONT));
+
/* Linux version of pstoedit produces EMFs with offDx set to 0.
* These files can be enumerated and played under Win98 just
* fine, but at least Win2k chokes on them.
@@ -1153,6 +1159,8 @@ BOOL WINAPI PlayEnhMetaFileRecord(
pExtTextOutA->emrtext.fOptions, &rc,
(LPCSTR)((const BYTE *)mr + pExtTextOutA->emrtext.offString), pExtTextOutA->emrtext.nChars,
dx);
+
+ SetGraphicsMode(hdc, old_mode);
break;
}
@@ -1161,6 +1169,7 @@ BOOL WINAPI PlayEnhMetaFileRecord(
const EMREXTTEXTOUTW *pExtTextOutW = (const EMREXTTEXTOUTW *)mr;
RECT rc;
const INT *dx = NULL;
+ int old_mode;
rc.left = pExtTextOutW->emrtext.rcl.left;
rc.top = pExtTextOutW->emrtext.rcl.top;
@@ -1170,6 +1179,11 @@ BOOL WINAPI PlayEnhMetaFileRecord(
pExtTextOutW->emrtext.ptlReference.x, pExtTextOutW->emrtext.ptlReference.y,
rc.left, rc.top, rc.right, rc.bottom, pExtTextOutW->emrtext.fOptions);
+ old_mode = SetGraphicsMode(hdc, pExtTextOutW->iGraphicsMode);
+ /* Reselect the font back into the dc so that the transformation
+ gets updated. */
+ SelectObject(hdc, GetCurrentObject(hdc, OBJ_FONT));
+
/* Linux version of pstoedit produces EMFs with offDx set to 0.
* These files can be enumerated and played under Win98 just
* fine, but at least Win2k chokes on them.
@@ -1181,6 +1195,8 @@ BOOL WINAPI PlayEnhMetaFileRecord(
pExtTextOutW->emrtext.fOptions, &rc,
(LPCWSTR)((const BYTE *)mr + pExtTextOutW->emrtext.offString), pExtTextOutW->emrtext.nChars,
dx);
+
+ SetGraphicsMode(hdc, old_mode);
break;
}
Module: wine
Branch: master
Commit: d6582ae8bd3e5ffe526407c2b2d6fe0b572c28f0
URL: http://source.winehq.org/git/wine.git/?a=commit;h=d6582ae8bd3e5ffe526407c2b…
Author: Vincent Povirk <vincent(a)codeweavers.com>
Date: Mon Feb 21 14:22:02 2011 -0600
mscoree: Overhaul of mono runtime shutdown process.
It turns out that we can't free individual domains because that tears down
important data structures. Instead we must shut down the entire runtime, but
only if Mono doesn't shut itself down first. And we need to do it before
DLL_PROCESS_DETACH because important libraries might be gone by then.
---
dlls/mscoree/corruntimehost.c | 10 +++--
dlls/mscoree/metahost.c | 68 +++++++++++++++++++++++++++++++++++++++-
dlls/mscoree/mscoree_main.c | 5 ++-
dlls/mscoree/mscoree_private.h | 17 +++++++++-
4 files changed, 91 insertions(+), 9 deletions(-)
Diff: http://source.winehq.org/git/wine.git/?a=commitdiff;h=d6582ae8bd3e5ffe52640…