diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2013-06-18 13:46:24 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-06-18 13:46:24 -0400 |
commit | 691be68ac2a933920422d06ea74c91429d7a599c (patch) | |
tree | 3f21b39682601e0fae8eba785d7d26a016620e05 /libs/canvas/text.cc | |
parent | 77f5f4c4bf9074d953a1653658c8f96f38ae258c (diff) |
fix rect redraw problems caused by intersection requiring the usual 0.5 expansion (though consider a more general fix for this at teh group level)
Diffstat (limited to 'libs/canvas/text.cc')
-rw-r--r-- | libs/canvas/text.cc | 39 |
1 files changed, 17 insertions, 22 deletions
diff --git a/libs/canvas/text.cc b/libs/canvas/text.cc index e4575de3b5..4c4d16d85c 100644 --- a/libs/canvas/text.cc +++ b/libs/canvas/text.cc @@ -96,12 +96,27 @@ Text::redraw (Cairo::RefPtr<Cairo::Context> context) const * ::render */ - cerr << "rendered \"" << layout->get_text() << "\" into image\n"; - _need_redraw = false; } void +Text::render (Rect const & /*area*/, Cairo::RefPtr<Cairo::Context> context) const +{ + if (_text.empty()) { + return; + } + + if (_need_redraw) { + redraw (context); + } + + Rect self = item_to_window (Rect (0, 0, min (_clamped_width, _width), _height)); + context->rectangle (self.x0, self.y0, self.width(), self.height()); + context->set_source (_image, self.x0, self.y0); + context->fill (); +} + +void Text::clamp_width (double w) { _clamped_width = w; @@ -138,26 +153,6 @@ Text::compute_bounding_box () const } void -Text::render (Rect const & area, Cairo::RefPtr<Cairo::Context> context) const -{ - if (_text.empty()) { - return; - } - - if (_need_redraw) { - redraw (context); - } - - - Rect self = item_to_window (Rect (0, 0, min (_clamped_width, _width), _height)); - cerr << "Draw \"" << _text << "\" @ " << self.x0 << ", " << self.y0 << ' ' << self.width() << " x " << self.height() << endl; - context->rectangle (self.x0, self.y0, self.width(), self.height()); - context->set_source (_image, 0, 0); - //context->set_source_rgb (0.3, 0.4, 0.02); - context->fill (); -} - -void Text::set_alignment (Pango::Alignment alignment) { begin_change (); |