Just removing the zeros will shift the pattern to the left potentially producing an effect that is not expected. I will take a look at what happens on Windows to see what needs to be replicated.
On 19 October 2011 20:05, Alexandre Julliard julliard@winehq.org wrote:
damian dixon damian.dixon@gmail.com writes:
diff --git a/dlls/winex11.drv/pen.c b/dlls/winex11.drv/pen.c index b677515..71b1bea 100644 --- a/dlls/winex11.drv/pen.c +++ b/dlls/winex11.drv/pen.c @@ -108,7 +108,7 @@ HPEN X11DRV_SelectPen( PHYSDEV dev, HPEN hpen ) case PS_USERSTYLE: physDev->pen.dash_len = min(elp->elpNumEntries,
MAX_DASHLEN);
for(i = 0; i < physDev->pen.dash_len ; i++)
physDev->pen.dashes[i] = min(elp->elpStyleEntry[i],
255);
physDev->pen.dashes[i] = min(elp->elpStyleEntry[i], 255)
? min(elp->elpStyleEntry[i], 255) : 1;
Removing 0 entries (and merging the adjacent entries) would probably be more correct. It could also use some test cases.
-- Alexandre Julliard julliard@winehq.org