added an async version of MarkContentDirty(), which would clear the backgrounds in case an expose event had already happened earlier, however, it turned out I didn't need it yet, see next commit

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17510 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus
2006-05-19 09:53:01 +00:00
parent 3e58cde6dc
commit f5643345cd
2 changed files with 20 additions and 1 deletions
+18
View File
@@ -676,6 +676,24 @@ WindowLayer::MarkContentDirty(BRegion& regionOnScreen)
}
void
WindowLayer::MarkContentDirtyAsync(BRegion& regionOnScreen)
{
// NOTE: see comments in ProcessDirtyRegion()
if (fHidden)
return;
regionOnScreen.IntersectWith(&VisibleContentRegion());
if (fDirtyRegion.CountRects() == 0) {
ServerWindow()->RequestRedraw();
}
fDirtyRegion.Include(&regionOnScreen);
fDirtyCause |= UPDATE_REQUEST;
}
void
WindowLayer::InvalidateView(ViewLayer* layer, BRegion& layerRegion)
{
+2 -1
View File
@@ -99,8 +99,9 @@ class WindowLayer {
// can be used from inside classes that don't
// need to know about Desktop (first version uses Desktop)
void MarkDirty(BRegion& regionOnScreen);
// this version does not use the Desktop
// these versions do not use the Desktop
void MarkContentDirty(BRegion& regionOnScreen);
void MarkContentDirtyAsync(BRegion& regionOnScreen);
// shortcut for invalidating just one view
void InvalidateView(ViewLayer* view, BRegion& layerRegion);