Andreas Mohr andi@rhlx01.fht-esslingen.de writes:
This is rather non-obvious if handling, I'm surprised that the compiler doesn't warn about it, or does it?
It did, but I was making from the top level and it got lost amongtsh the other messages.
Could you add proper braces there?
Fixed up patch below.
Does the patch look sane otherwise? The thing that caused the warnings still works as before, but doesn't emit those warning now, but I offer no other claim to correctness.
Peter
Index: dlls/msvideo/drawdib.c =================================================================== RCS file: /home/wine/wine/dlls/msvideo/drawdib.c,v retrieving revision 1.21 diff -u -r1.21 drawdib.c --- dlls/msvideo/drawdib.c 3 Jun 2004 23:19:51 -0000 1.21 +++ dlls/msvideo/drawdib.c 14 Oct 2004 15:23:17 -0000 @@ -311,7 +311,7 @@ whdd = MSVIDEO_GetHddPtr(hdd); if (!whdd) return FALSE;
- if (wFlags & ~(DDF_SAME_HDC | DDF_SAME_DRAW | DDF_NOTKEYFRAME | DDF_UPDATE | DDF_DONTDRAW)) + if (wFlags & ~(DDF_SAME_HDC | DDF_SAME_DRAW | DDF_NOTKEYFRAME | DDF_UPDATE | DDF_DONTDRAW | DDF_BACKGROUNDPAL)) FIXME("wFlags == 0x%08lx not handled\n", (DWORD)wFlags);
if (!lpBits) @@ -362,7 +362,12 @@ } } if (!(wFlags & DDF_DONTDRAW) && whdd->hpal) - SelectPalette(hdc, whdd->hpal, FALSE); + { + if ((wFlags & DDF_BACKGROUNDPAL) && ! (wFlags & DDF_SAME_HDC)) + SelectPalette(hdc, whdd->hpal, TRUE); + else + SelectPalette(hdc, whdd->hpal, FALSE); + }
if (!(StretchBlt(whdd->hdc, xDst, yDst, dxDst, dyDst, whdd->hMemDC, xSrc, ySrc, dxSrc, dySrc, SRCCOPY))) ret = FALSE;