From 8ee34f96da42132424807230fcbbe0033651eb29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Sat, 28 Mar 2009 14:12:55 +0000 Subject: [PATCH] When setting view flags which toggle the B_DRAW_ON_CHILDREN flag, immediately trigger a recalculation of the view clipping region (it will now include children). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29755 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/app/ServerWindow.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/servers/app/ServerWindow.cpp b/src/servers/app/ServerWindow.cpp index 1337c4656d..e5437e73ed 100644 --- a/src/servers/app/ServerWindow.cpp +++ b/src/servers/app/ServerWindow.cpp @@ -1577,9 +1577,20 @@ fDesktop->LockSingleWindow(); { uint32 flags; link.Read(&flags); + + // The views clipping changes when the B_DRAW_ON_CHILDREN flag is + // toggled. + bool updateClipping = (flags & B_DRAW_ON_CHILDREN) + ^ (fCurrentView->Flags() & B_DRAW_ON_CHILDREN); + fCurrentView->SetFlags(flags); _UpdateDrawState(fCurrentView); + if (updateClipping) { + fCurrentView->RebuildClipping(false); + fCurrentDrawingRegionValid = false; + } + DTRACE(("ServerWindow %s: Message AS_VIEW_SET_FLAGS: " "View: %s -> flags: %lu\n", Title(), fCurrentView->Name(), flags));