From 0155d5acde6293cf0b507b95414f3affd1fa8e4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9=20van=20Geldorp?= Date: Fri, 2 Jul 2004 20:04:48 +0000 Subject: [PATCH] Only accept matching palette svn path=/trunk/; revision=9972 --- reactos/subsys/win32k/objects/color.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/reactos/subsys/win32k/objects/color.c b/reactos/subsys/win32k/objects/color.c index c28fd426ae1..a86dbdfd55b 100644 --- a/reactos/subsys/win32k/objects/color.c +++ b/reactos/subsys/win32k/objects/color.c @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: color.c,v 1.45 2004/06/29 20:08:05 navaraf Exp $ */ +/* $Id: color.c,v 1.46 2004/07/02 20:04:48 gvg Exp $ */ #include // FIXME: Use PXLATEOBJ logicalToSystem instead of int *mapping @@ -452,9 +452,19 @@ HPALETTE STDCALL NtGdiSelectPalette(HDC hDC, PalGDI = PALETTE_LockPalette(hpal); if (NULL != PalGDI) { - PALETTE_UnlockPalette(hpal); - oldPal = dc->w.hPalette; - dc->w.hPalette = hpal; + /* Is this a valid palette for this depth? */ + if ((dc->w.bitsPerPixel <= 8 && PAL_INDEXED == PalGDI->Mode) + || (8 < dc->w.bitsPerPixel && PAL_INDEXED != PalGDI->Mode)) + { + PALETTE_UnlockPalette(hpal); + oldPal = dc->w.hPalette; + dc->w.hPalette = hpal; + } + else + { + PALETTE_UnlockPalette(hpal); + oldPal = NULL; + } } else {