diff --git a/src/servers/app/server/Layer.cpp b/src/servers/app/server/Layer.cpp index 018481eec4..094e9c4482 100644 --- a/src/servers/app/server/Layer.cpp +++ b/src/servers/app/server/Layer.cpp @@ -432,7 +432,8 @@ void Layer::RequestDraw(const BRegion ®, Layer *startFrom) if (fVisible.CountRects() > 0) { fUpdateReg = fVisible; - fUpdateReg.IntersectWith(®); + if (!(fFlags & B_FULL_UPDATE_ON_RESIZE)) + fUpdateReg.IntersectWith(®); if (fUpdateReg.CountRects() > 0){ fDriver->ConstrainClippingRegion(&fUpdateReg); diff --git a/src/servers/app/server/ServerWindow.cpp b/src/servers/app/server/ServerWindow.cpp index 0ef0a4ffc6..c194115c31 100644 --- a/src/servers/app/server/ServerWindow.cpp +++ b/src/servers/app/server/ServerWindow.cpp @@ -182,7 +182,7 @@ ServerWindow::ServerWindow(BRect rect, const char *string, uint32 wlook, void ServerWindow::Init(void) { - fWinBorder = new WinBorder( fFrame, fTitle.String(), fLook, fFeel, fFlags, + fWinBorder = new WinBorder( fFrame, fTitle.String(), fLook, fFeel, 0UL, this, desktop->GetDisplayDriver()); fWinBorder->RebuildFullRegion(); diff --git a/src/servers/app/server/WinBorder.cpp b/src/servers/app/server/WinBorder.cpp index 531fda5186..9a3c7c1f51 100644 --- a/src/servers/app/server/WinBorder.cpp +++ b/src/servers/app/server/WinBorder.cpp @@ -92,6 +92,7 @@ WinBorder::WinBorder(const BRect &r, const char *name, const int32 look, const i fMainWinBorder = NULL; fDecorator = NULL; fAdFlags = fAdFlags | B_LAYER_CHILDREN_DEPENDANT; + fFlags = B_WILL_DRAW | B_FULL_UPDATE_ON_RESIZE; fIsMoving = false; fIsResizing = false; @@ -341,6 +342,7 @@ void WinBorder::HighlightDecorator(const bool &active) void WinBorder::Draw(const BRect &r) { STRACE(("WinBorder(%s)::Draw()\n", GetName())); + // if we have a visible region, it is decorator's one. if(fDecorator) { diff --git a/src/servers/app/server/WinBorder.h b/src/servers/app/server/WinBorder.h index 52ac81b233..9e9d2baed7 100644 --- a/src/servers/app/server/WinBorder.h +++ b/src/servers/app/server/WinBorder.h @@ -81,7 +81,6 @@ protected: friend class ServerWindow; Decorator *fDecorator; - int32 fFlags; int32 fMouseButtons; int32 fKeyModifiers; BPoint fLastMousePosition;