From 6b9d4ab65d659aca0654efd373e26d3605d37bd4 Mon Sep 17 00:00:00 2001 From: Jukka Heinonen Date: Fri, 7 Sep 2001 19:47:10 +0000 Subject: [PATCH] Changing DIB color table now updates the DIB visible state. --- graphics/x11drv/dib.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/graphics/x11drv/dib.c b/graphics/x11drv/dib.c index 789ba03425e..2ebc269d726 100644 --- a/graphics/x11drv/dib.c +++ b/graphics/x11drv/dib.c @@ -4023,8 +4023,16 @@ UINT X11DRV_DIB_SetDIBColorTable(BITMAPOBJ *bmp, DC *dc, UINT start, UINT count, X11DRV_DIBSECTION *dib = (X11DRV_DIBSECTION *) bmp->dib; if (dib && dib->colorMap) { - X11DRV_DIB_GenColorMap( dc, dib->colorMap, DIB_RGB_COLORS, dib->dibSection.dsBm.bmBitsPixel, + /* + * Changing color table might change the mapping between + * DIB colors and X11 colors and thus alter the visible state + * of the bitmap object. + */ + X11DRV_DIB_Lock(bmp, DIB_Status_AppMod, FALSE); + X11DRV_DIB_GenColorMap( dc, dib->colorMap, DIB_RGB_COLORS, + dib->dibSection.dsBm.bmBitsPixel, TRUE, colors, start, count + start ); + X11DRV_DIB_Unlock(bmp, TRUE); return count; } return 0; -- 2.11.4.GIT