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
|
void
|
||||||
WindowLayer::InvalidateView(ViewLayer* layer, BRegion& layerRegion)
|
WindowLayer::InvalidateView(ViewLayer* layer, BRegion& layerRegion)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -99,8 +99,9 @@ class WindowLayer {
|
|||||||
// can be used from inside classes that don't
|
// can be used from inside classes that don't
|
||||||
// need to know about Desktop (first version uses Desktop)
|
// need to know about Desktop (first version uses Desktop)
|
||||||
void MarkDirty(BRegion& regionOnScreen);
|
void MarkDirty(BRegion& regionOnScreen);
|
||||||
// this version does not use the Desktop
|
// these versions do not use the Desktop
|
||||||
void MarkContentDirty(BRegion& regionOnScreen);
|
void MarkContentDirty(BRegion& regionOnScreen);
|
||||||
|
void MarkContentDirtyAsync(BRegion& regionOnScreen);
|
||||||
// shortcut for invalidating just one view
|
// shortcut for invalidating just one view
|
||||||
void InvalidateView(ViewLayer* view, BRegion& layerRegion);
|
void InvalidateView(ViewLayer* view, BRegion& layerRegion);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user