diff options
| author | Alvin Penner <penner@vaxxine.com> | 2012-05-27 22:15:46 +0000 |
|---|---|---|
| committer | apenner <penner@vaxxine.com> | 2012-05-27 22:15:46 +0000 |
| commit | 49c2989ecbe4a0990edf744d0b1f530bc39c34cf (patch) | |
| tree | 4733d8856235b0764aa78e60d29397d0e7a8785b /src | |
| parent | Get rid of remaining deprecated GdkDevice API usage (diff) | |
| download | inkscape-49c2989ecbe4a0990edf744d0b1f530bc39c34cf.tar.gz inkscape-49c2989ecbe4a0990edf744d0b1f530bc39c34cf.zip | |
emf import/export. patch by David Mathog for setmiterlimit (Bug 1004084)
Fixed bugs:
- https://launchpad.net/bugs/1004084
(bzr r11427)
Diffstat (limited to 'src')
| -rw-r--r-- | src/extension/internal/emf-win32-inout.cpp | 11 | ||||
| -rw-r--r-- | src/extension/internal/emf-win32-print.cpp | 8 |
2 files changed, 7 insertions, 12 deletions
diff --git a/src/extension/internal/emf-win32-inout.cpp b/src/extension/internal/emf-win32-inout.cpp index f54bfc6ea..9c8755201 100644 --- a/src/extension/internal/emf-win32-inout.cpp +++ b/src/extension/internal/emf-win32-inout.cpp @@ -1654,11 +1654,12 @@ myEnhMetaFileProc(HDC /*hDC*/, HANDLETABLE * /*lpHTable*/, ENHMETARECORD const * PEMRSETMITERLIMIT pEmr = (PEMRSETMITERLIMIT) lpEMFR; - float miterlimit = pEmr->eMiterLimit; - miterlimit = miterlimit * 4.0 / 10.0; - d->dc[d->level].style.stroke_miterlimit.value = pix_to_size_point( d, miterlimit ); - if (d->dc[d->level].style.stroke_miterlimit.value < 1) - d->dc[d->level].style.stroke_miterlimit.value = 4.0; + //BUG in SetMiterLimit() on mingw, possibly in underlying Windows(at least on XP?) + //The function takes a float but saves a 32 bit int in the EMR_SETMITERLIMIT record. + float miterlimit = *((int32_t *) &(pEmr->eMiterLimit)); + d->dc[d->level].style.stroke_miterlimit.value = miterlimit; //ratio, not a pt size + if (d->dc[d->level].style.stroke_miterlimit.value < 1.0) + d->dc[d->level].style.stroke_miterlimit.value = 1.0; break; } case EMR_BEGINPATH: diff --git a/src/extension/internal/emf-win32-print.cpp b/src/extension/internal/emf-win32-print.cpp index ef76c2c14..2b79fd5a4 100644 --- a/src/extension/internal/emf-win32-print.cpp +++ b/src/extension/internal/emf-win32-print.cpp @@ -374,13 +374,7 @@ void PrintEmfWin32::create_pen(SPStyle const *style, const Geom::Affine &transfo if (linejoin == PS_JOIN_MITER) { float oldmiterlimit; - float miterlimit = style->stroke_miterlimit.value; - - miterlimit = miterlimit * 10.0 / 4.0; - if (miterlimit < 1) - miterlimit = 10.0; - - miterlimit = miterlimit * IN_PER_PX * dwDPI; + float miterlimit = style->stroke_miterlimit.value; //ratio, not a pt size SetMiterLimit( hdc, |
