The decision to inform the server about changed flags needs to depend on the

changed flags, not on the new flags! Fixes the server and client going out of
sync when clearing any flag that the server needs to know about.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35451 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus 2010-02-11 13:47:29 +00:00
parent 408a0aa2f1
commit 4f24f3110b

View File

@ -862,8 +862,9 @@ BView::SetFlags(uint32 flags)
fOwner->SetPulseRate(fOwner->PulseRate());
}
if (flags & (B_WILL_DRAW | B_FULL_UPDATE_ON_RESIZE
| B_FRAME_EVENTS | B_SUBPIXEL_PRECISE)) {
uint32 changesFlags = flags ^ fFlags;
if (changesFlags & (B_WILL_DRAW | B_FULL_UPDATE_ON_RESIZE
| B_FRAME_EVENTS | B_SUBPIXEL_PRECISE)) {
_CheckLockAndSwitchCurrent();
fOwner->fLink->StartMessage(AS_VIEW_SET_FLAGS);