diff --git a/src/holt_widget.cc b/src/holt_widget.cc index b0c328f..4d72817 100644 --- a/src/holt_widget.cc +++ b/src/holt_widget.cc @@ -120,15 +120,19 @@ void HoltResource::draw(cairo_t *cr) cairo_save(cr); // clip text outside region - cairo_rectangle(cr, _pos.real() - _radius, _pos.imag() - _radius, + cairo_rectangle(cr, _pos.real() - _radius, _pos.imag() - _radius, 2 * _radius * x_percent, 2 * _radius * y_percent); cairo_clip(cr); // draw text cairo_text_extents_t extents; cairo_text_extents(cr, _resource->get_name().c_str(), &extents); + double xpos = _pos.real() - extents.width * (1 - x_percent + x_percent / 2); + // left aligned if too large + if(xpos<_pos.real() - _radius) + xpos = _pos.real() - _radius; cairo_move_to(cr, - _pos.real() - extents.width * (1 - x_percent + x_percent / 2), + xpos, _pos.imag() + extents.height * ((1 - y_percent) / 2 + 0.5) ); cairo_show_text(cr, _resource->get_name().c_str());