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:
@@ -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(®ionOnScreen);
|
||||
fDirtyCause |= UPDATE_REQUEST;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
WindowLayer::InvalidateView(ViewLayer* layer, BRegion& layerRegion)
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user