Canvas: fix text rendering geometry

This commit is contained in:
Paul Davis 2020-06-19 14:01:34 -06:00
parent d647ff64b9
commit 19a85d6157

View file

@ -24,6 +24,7 @@
#include <gtkmm/window.h>
#include <gtkmm/label.h>
#include "pbd/compose.h"
#include "pbd/stacktrace.h"
#include "canvas/text.h"
@ -194,10 +195,11 @@ Text::render (Rect const & area, Cairo::RefPtr<Cairo::Context> context) const
return;
}
Rect self = item_to_window (Rect (_position.x, _position.y, _position.x + min (_clamped_width, (double)_image->get_width ()), _position.y + _image->get_height ()));
Rect i = self.intersection (area);
const Rect r (0, 0, min (_clamped_width, (double)_image->get_width ()), _image->get_height ());
Rect self = item_to_window (r);
Rect intersection = self.intersection (area);
if (!i) {
if (!intersection) {
return;
}
@ -205,8 +207,6 @@ Text::render (Rect const & area, Cairo::RefPtr<Cairo::Context> context) const
_redraw ();
}
Rect intersection (i);
context->rectangle (intersection.x0, intersection.y0, intersection.width(), intersection.height());
#ifdef __APPLE__
/* Below, the rendering scaling is set to support retina display