diff -r 3a60ebea00d0 -r cd0ae4656946 uiacceltk/hitchcock/coretoolkit/src/huicanvaspainter.cpp --- a/uiacceltk/hitchcock/coretoolkit/src/huicanvaspainter.cpp Wed Jun 09 10:41:25 2010 +0300 +++ b/uiacceltk/hitchcock/coretoolkit/src/huicanvaspainter.cpp Mon Jun 21 16:41:52 2010 +0300 @@ -254,10 +254,22 @@ { if (iCommandBuffers[cb]->iOrientation == aOrientation) { - // should this be original display rect or update region - tempRegion.AddRect(iCommandBuffers[cb]->iOriginalDisplayRect); + // add update region of command buffer to region + TRect rect(iCommandBuffers[cb]->iOriginalUpdateRegion.BoundingRect()); + rect.Move(-iCommandBuffers[cb]->iOriginalDisplayRect.Round().iTl); + + tempRegion.AddRect(rect); + tempRegion.Tidy(); } } + + if (iCanvasVisual) + { + TRect displayRect(iCanvasVisual->DisplayRect()); + tempRegion.ClipRect(TRect(displayRect.Size())); + tempRegion.Offset(displayRect.iTl); + } + TRect result = tempRegion.BoundingRect(); tempRegion.Close(); return result;