diff options
Diffstat (limited to 'gtk2_ardour/canvas-flag.cc')
-rw-r--r-- | gtk2_ardour/canvas-flag.cc | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/gtk2_ardour/canvas-flag.cc b/gtk2_ardour/canvas-flag.cc index 232035e4cf..c40bf45648 100644 --- a/gtk2_ardour/canvas-flag.cc +++ b/gtk2_ardour/canvas-flag.cc @@ -5,16 +5,32 @@ using namespace Gnome::Canvas; using namespace std; - + void -CanvasFlag::set_text(string& a_text) +CanvasFlag::delete_allocated_objects() { if (_text) { delete _text; _text = 0; } - _text = new Text(*this, 0.0, 0.0, a_text); + if (_line) { + delete _line; + _line = 0; + } + + if (_rect) { + delete _rect; + _rect = 0; + } +} + +void +CanvasFlag::set_text(string& a_text) +{ + delete_allocated_objects(); + + _text = new Text(*this, 0.0, 0.0, Glib::ustring(a_text)); _text->property_justification() = Gtk::JUSTIFY_CENTER; _text->property_fill_color_rgba() = _outline_color_rgba; double flagwidth = _text->property_text_width() + 10.0; @@ -33,10 +49,6 @@ CanvasFlag::set_text(string& a_text) CanvasFlag::~CanvasFlag() { - delete _line; - delete _rect; - if(_text) { - delete _text; - } + delete_allocated_objects(); } |