diff --git a/src/servers/app/DrawState.cpp b/src/servers/app/DrawState.cpp index d7f88bc922..9621cfa68e 100644 --- a/src/servers/app/DrawState.cpp +++ b/src/servers/app/DrawState.cpp @@ -370,6 +370,19 @@ DrawState::SetTransform(BAffineTransform transform) } +DrawState* +DrawState::Squash() +{ + DrawState* const squashedState = new DrawState(*this); + + squashedState->fOrigin = fCombinedOrigin; + squashedState->fScale = fCombinedScale; + squashedState->fTransform = fCombinedTransform; + + return squashedState; +} + + void DrawState::SetClippingRegion(const BRegion* region) { diff --git a/src/servers/app/DrawState.h b/src/servers/app/DrawState.h index 392549789f..48a6f371c6 100644 --- a/src/servers/app/DrawState.h +++ b/src/servers/app/DrawState.h @@ -69,6 +69,8 @@ public: BAffineTransform CombinedTransform() const { return fCombinedTransform; } + DrawState* Squash(); + // additional clipping as requested by client void SetClippingRegion(const BRegion* region);