* bugfix in ScrollBy (it could scroll the screen area of hidden views)
* test the actually visible view area against dirty region, (this avoids making the client window call the Draw() function of views, even though all the drawing would get clipped on the server side) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20756 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -965,6 +965,12 @@ ViewLayer::ParentResized(int32 x, int32 y, BRegion* dirtyRegion)
|
||||
void
|
||||
ViewLayer::ScrollBy(int32 x, int32 y, BRegion* dirtyRegion)
|
||||
{
|
||||
if (!fVisible || !fWindow) {
|
||||
fScrollingOffset.x += x;
|
||||
fScrollingOffset.y += y;
|
||||
return;
|
||||
}
|
||||
|
||||
// blitting version, invalidates
|
||||
// old contents
|
||||
|
||||
@@ -1412,13 +1418,13 @@ ViewLayer::AddTokensForLayersInRegion(BPrivate::PortLink& link,
|
||||
if (!fVisible)
|
||||
return;
|
||||
|
||||
// if (region.Intersects(ScreenClipping(windowContentClipping).Frame()))
|
||||
IntRect screenBounds(Bounds());
|
||||
ConvertToScreen(&screenBounds);
|
||||
if (!region.Intersects((clipping_rect)screenBounds))
|
||||
return;
|
||||
|
||||
link.Attach<int32>(fToken);
|
||||
if (region.Intersects(ScreenClipping(windowContentClipping).Frame()))
|
||||
link.Attach<int32>(fToken);
|
||||
|
||||
for (ViewLayer* child = FirstChild(); child; child = child->NextSibling())
|
||||
child->AddTokensForLayersInRegion(link, region,
|
||||
|
||||
Reference in New Issue
Block a user