diff --git a/NEWS.md b/NEWS.md index cb9547e597..2d618682e4 100644 --- a/NEWS.md +++ b/NEWS.md @@ -9,6 +9,7 @@ * Fixed crash when accessing a world through a symlink (#4042) * Fixed performance issue when tinting tiles from large tilesets * Fixed error reporting when exporting on the command-line (by Shuhei Nagasawa, #4015) +* Fixed updating of object label when text changes without changing size * Fixed minimum value of spinbox in Tile Animation Editor ### Tiled 1.11.0 (27 June 2024) diff --git a/src/tiled/objectselectionitem.cpp b/src/tiled/objectselectionitem.cpp index 572e6650d2..5fc004a4dd 100644 --- a/src/tiled/objectselectionitem.cpp +++ b/src/tiled/objectselectionitem.cpp @@ -183,8 +183,13 @@ void MapObjectLabel::syncWithMapObject(const MapRenderer &renderer) if (!nameVisible) return; + if (mText != mObject->name()) { + mText = mObject->name(); + update(); + } + const QFontMetricsF metrics(scene() ? scene()->font() : QApplication::font()); - QRectF boundingRect = metrics.boundingRect(mObject->name()); + QRectF boundingRect = metrics.boundingRect(mText); const qreal margin = Utils::dpiScaled(labelMargin); const qreal distance = Utils::dpiScaled(labelDistance); @@ -251,9 +256,9 @@ void MapObjectLabel::paint(QPainter *painter, painter->drawRoundedRect(mBoundingRect, 4, 4); painter->setPen(Qt::black); - painter->drawText(mTextPos + QPointF(1,1), mObject->name()); + painter->drawText(mTextPos + QPointF(1,1), mText); painter->setPen(Qt::white); - painter->drawText(mTextPos, mObject->name()); + painter->drawText(mTextPos, mText); } diff --git a/src/tiled/objectselectionitem.h b/src/tiled/objectselectionitem.h index e67fbe088b..f898c5d2ae 100644 --- a/src/tiled/objectselectionitem.h +++ b/src/tiled/objectselectionitem.h @@ -57,6 +57,7 @@ class MapObjectLabel : public QGraphicsItem private: QRectF mBoundingRect; + QString mText; QPointF mTextPos; const MapObject *mObject; QColor mColor;