app_server: actually invalidate decorator area on window close
More completely fixes #12085 Change-Id: I73bf987f06422bebbfc739d3700c11edad928646 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2621 Reviewed-by: waddlesplash <[email protected]> (cherry picked from commit a16c358d59b43b1e274b323105d24ce4e9f97292) Reviewed-on: https://review.haiku-os.org/c/haiku/+/2634
This commit is contained in:
committed by
waddlesplash
parent
22337d8f4b
commit
693e2f4fb4
@@ -2098,9 +2098,10 @@ Window::DetachFromWindowStack(bool ownStackNeeded)
|
|||||||
if (fCurrentStack->RemoveWindow(this) == false)
|
if (fCurrentStack->RemoveWindow(this) == false)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
BRegion invalidatedRegion;
|
||||||
::Decorator* decorator = fCurrentStack->Decorator();
|
::Decorator* decorator = fCurrentStack->Decorator();
|
||||||
if (decorator != NULL) {
|
if (decorator != NULL) {
|
||||||
decorator->RemoveTab(index);
|
decorator->RemoveTab(index, &invalidatedRegion);
|
||||||
decorator->SetTopTab(fCurrentStack->LayerOrder().CountItems() - 1);
|
decorator->SetTopTab(fCurrentStack->LayerOrder().CountItems() - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2120,8 +2121,9 @@ Window::DetachFromWindowStack(bool ownStackNeeded)
|
|||||||
SetFocus(IsFocus());
|
SetFocus(IsFocus());
|
||||||
|
|
||||||
if (remainingTop != NULL) {
|
if (remainingTop != NULL) {
|
||||||
|
invalidatedRegion.Include(&remainingTop->VisibleRegion());
|
||||||
fDesktop->RebuildAndRedrawAfterWindowChange(remainingTop,
|
fDesktop->RebuildAndRedrawAfterWindowChange(remainingTop,
|
||||||
remainingTop->VisibleRegion());
|
invalidatedRegion);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user