Keith Packard <[email protected]> writes:

> Any time the colormap is changed, the entire screen needs to be
> repainted to match.
>
> Signed-off-by: Keith Packard <[email protected]>
> ---
>  hw/kdrive/ephyr/ephyr.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
>
> diff --git a/hw/kdrive/ephyr/ephyr.c b/hw/kdrive/ephyr/ephyr.c
> index da80c95..73d7b87 100644
> --- a/hw/kdrive/ephyr/ephyr.c
> +++ b/hw/kdrive/ephyr/ephyr.c
> @@ -1232,6 +1232,10 @@ ephyrGetColors(ScreenPtr pScreen, int n, xColorItem * 
> pdefs)
>  void
>  ephyrPutColors(ScreenPtr pScreen, int n, xColorItem * pdefs)
>  {
> +    KdScreenPriv(pScreen);
> +    KdScreenInfo *screen = pScreenPriv->screen;
> +    EphyrScrPriv *scrpriv = screen->driver;
> +    BoxRec box;
>      int min, max, p;
>  
>      /* XXX Not sure if this is right */
> @@ -1251,6 +1255,13 @@ ephyrPutColors(ScreenPtr pScreen, int n, xColorItem * 
> pdefs)
>                               pdefs->green >> 8, pdefs->blue >> 8);
>          pdefs++;
>      }
> +    if (scrpriv->pDamage) {
> +        box.x1 = 0;
> +        box.y1 = 0;
> +        box.x2 = pScreen->width;
> +        box.y2 = pScreen->height;
> +        RegionReset(DamageRegion(scrpriv->pDamage), &box);
> +    }
>  }

I expected DamageReportDamage() to be used instead, but this is safe
because we're using DamageReportNone (and leaving the blockhandler to do
our paint).

Reviewed-by: Eric Anholt <[email protected]>

Attachment: pgp8_m0ybxCFV.pgp
Description: PGP signature

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to