diff --git a/src/servers/app/DrawState.cpp b/src/servers/app/DrawState.cpp index 892d3ca826..ade88cae62 100644 --- a/src/servers/app/DrawState.cpp +++ b/src/servers/app/DrawState.cpp @@ -135,7 +135,7 @@ DrawState::ReadFontFromLink(BPrivate::LinkReceiver& link) link.Read(&size); fFont.SetSize(size); } - + if (mask & B_FONT_SHEAR) { float shear; link.Read(&shear); @@ -246,7 +246,7 @@ DrawState::WriteToLink(BPrivate::LinkSender& link) const link.Attach(fFont.Encoding()); link.Attach(fFont.Face()); link.Attach(fFont.Flags()); - + // Attach view state link.Attach(fPenLocation); link.Attach(fPenSize); @@ -341,6 +341,13 @@ DrawState::HasClipping() const } +bool +DrawState::HasAdditionalClipping() const +{ + return fClippingRegion != NULL; +} + + bool DrawState::GetCombinedClippingRegion(BRegion* region) const { diff --git a/src/servers/app/DrawState.h b/src/servers/app/DrawState.h index e7c0be4b35..a050f53644 100644 --- a/src/servers/app/DrawState.h +++ b/src/servers/app/DrawState.h @@ -65,6 +65,7 @@ public: void SetClippingRegion(const BRegion* region); bool HasClipping() const; + bool HasAdditionalClipping() const; bool GetCombinedClippingRegion(BRegion* region) const; // coordinate transformations diff --git a/src/servers/app/View.cpp b/src/servers/app/View.cpp index 097168ec44..193bdad2e7 100644 --- a/src/servers/app/View.cpp +++ b/src/servers/app/View.cpp @@ -1260,7 +1260,7 @@ View::PopState() return; } - bool rebuildClipping = true; //fDrawState->ClippingRegion() != NULL; + bool rebuildClipping = fDrawState->HasAdditionalClipping(); fDrawState = fDrawState->PopState(); fDrawState->SetSubPixelPrecise(fFlags & B_SUBPIXEL_PRECISE);