mirror of
git://source.winehq.org/git/wine.git
synced 2024-11-05 18:01:34 +00:00
Convert pen width to DP in StrokePath().
This commit is contained in:
parent
66cee15084
commit
7364f0a79c
1 changed files with 29 additions and 0 deletions
|
@ -1436,6 +1436,8 @@ static BOOL PATH_StrokePath(DC *dc, GdiPath *pPath)
|
|||
SIZE szViewportExt, szWindowExt;
|
||||
DWORD mapMode, graphicsMode;
|
||||
XFORM xform;
|
||||
HGDIOBJ hOldPen;
|
||||
HPEN hNewPen;
|
||||
BOOL ret = TRUE;
|
||||
|
||||
if(dc->funcs->pStrokePath)
|
||||
|
@ -1444,6 +1446,28 @@ static BOOL PATH_StrokePath(DC *dc, GdiPath *pPath)
|
|||
if(pPath->state != PATH_Closed)
|
||||
return FALSE;
|
||||
|
||||
/* Convert pen width to DP for MWT_IDENTITY */
|
||||
hOldPen = GetCurrentObject(dc->hSelf, OBJ_PEN);
|
||||
if(GetObjectType(hOldPen) == OBJ_EXTPEN) {
|
||||
POINT ptPenWidth;
|
||||
EXTLOGPEN elp;
|
||||
LOGBRUSH lb;
|
||||
GetObjectW(hOldPen, sizeof(EXTLOGPEN), &elp);
|
||||
ptPenWidth.x = elp.elpWidth;
|
||||
LPtoDP(dc->hSelf, &ptPenWidth, 1);
|
||||
lb.lbStyle = elp.elpBrushStyle;
|
||||
lb.lbColor = elp.elpColor;
|
||||
lb.lbHatch = elp.elpHatch;
|
||||
hNewPen = ExtCreatePen(elp.elpPenStyle, ptPenWidth.x, &lb,
|
||||
elp.elpNumEntries, elp.elpStyleEntry);
|
||||
} else /* OBJ_PEN */ {
|
||||
LOGPEN lp;
|
||||
GetObjectW(hOldPen, sizeof(LOGPEN), &lp);
|
||||
LPtoDP(dc->hSelf, &lp.lopnWidth, 1);
|
||||
hNewPen = CreatePenIndirect(&lp);
|
||||
}
|
||||
SelectObject(dc->hSelf, hNewPen);
|
||||
|
||||
/* Save the mapping mode info */
|
||||
mapMode=GetMapMode(dc->hSelf);
|
||||
GetViewportExtEx(dc->hSelf, &szViewportExt);
|
||||
|
@ -1559,6 +1583,11 @@ static BOOL PATH_StrokePath(DC *dc, GdiPath *pPath)
|
|||
DPtoLP(dc->hSelf, &pt, 1);
|
||||
MoveToEx(dc->hSelf, pt.x, pt.y, NULL);
|
||||
}
|
||||
|
||||
/* Restore old pen */
|
||||
DeleteObject(hNewPen);
|
||||
SelectObject(dc->hSelf, hOldPen);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue