From b5c7f936de1af0ce11e8257c4bba56c4a4e12f11 Mon Sep 17 00:00:00 2001 From: Julian Harnath Date: Wed, 8 Jul 2015 21:27:24 +0200 Subject: [PATCH] app_server: allow replacing the DrawState in a Canvas * Needed for layers support. The previously set DrawState and its stack predecessors are not freed, so take care to not leak memory when using this. --- src/servers/app/Canvas.cpp | 7 +++++++ src/servers/app/Canvas.h | 1 + 2 files changed, 8 insertions(+) diff --git a/src/servers/app/Canvas.cpp b/src/servers/app/Canvas.cpp index 729a160ff4..89b100f9d6 100644 --- a/src/servers/app/Canvas.cpp +++ b/src/servers/app/Canvas.cpp @@ -88,6 +88,13 @@ Canvas::PopState() } +void +Canvas::SetDrawState(DrawState* newState) +{ + fDrawState = newState; +} + + void Canvas::SetDrawingOrigin(BPoint origin) { diff --git a/src/servers/app/Canvas.h b/src/servers/app/Canvas.h index 8bc799aae3..3744435187 100644 --- a/src/servers/app/Canvas.h +++ b/src/servers/app/Canvas.h @@ -41,6 +41,7 @@ public: virtual void PushState(); virtual void PopState(); DrawState* CurrentState() const { return fDrawState; } + void SetDrawState(DrawState* newState); void SetDrawingOrigin(BPoint origin); BPoint DrawingOrigin() const;