diff --git a/src/textitem.cpp b/src/textitem.cpp index 7dcbb36..d59e6aa 100644 --- a/src/textitem.cpp +++ b/src/textitem.cpp @@ -21,12 +21,12 @@ qreal TextItem::avgCharWidth() const ratio = 1.0; // Greek & Cyrilic else if (cp >= 0x03FF && cp <= 0x04FF) { - ratio = (_font.capitalization() == QFont::AllUppercase) ? 0.75 : 0.68; + ratio = (_font.capitalization() == QFont::AllUppercase) ? 0.80 : 0.73; if (_font.bold()) ratio *= 1.1; // The rest (Latin scripts, Arabic, ...) } else { - ratio = (_font.capitalization() == QFont::AllUppercase) ? 0.70 : 0.58; + ratio = (_font.capitalization() == QFont::AllUppercase) ? 0.75 : 0.63; if (_font.bold()) ratio *= 1.1; } diff --git a/src/textpointitem.cpp b/src/textpointitem.cpp index 39ca39b..96d7a33 100644 --- a/src/textpointitem.cpp +++ b/src/textpointitem.cpp @@ -43,7 +43,11 @@ QRectF TextPointItem::exactBoundingRect() const QRectF TextPointItem::fuzzyBoundingRect() const { - int limit = font().pixelSize() * _maxWidth; + int fs = font().pixelSize(); + if (text().size() <= 3) + return QRectF(0, 0, text().size() * fs, fs * 1.6); + + int limit = fs * _maxWidth; qreal cw = avgCharWidth(); int width = 0, lines = 0; @@ -77,8 +81,7 @@ QRectF TextPointItem::fuzzyBoundingRect() const } } - return QRectF(0, 0, width, lines > 1 ? lines * font().pixelSize() * 1.3 - : font().pixelSize() * 1.5); + return QRectF(0, 0, width, lines * fs * 1.6); }