<table><tr><td style="">mglb created this revision.<br />mglb added a reviewer: Konsole.<br />mglb added a project: Konsole.<br />mglb requested review of this revision.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D11237">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>To calculate string width, Konsole uses character cell widths.<br />
Rendering engine uses actual characters widths for this purpose.<br />
Those sizes are equal in fixed-width fonts, as long as the font<br />
has specific character. Since no font contains all Unicode characters,<br />
some of them are taken from different fonts and their sizes differ<br />
from their cell size. This can lead to different results depending<br />
on how text line is split into strings.</p>
<p>It can be assumed that characters in Basic Latin block in every<br />
fixed-width font are really fixed-width, and can be rendered as one<br />
string. All other characters are rendered separately, and their<br />
rendering surface is limited to their cell.</p>
<p>Before/After screenshots:<br />
<a href="https://phabricator.kde.org/F5749612" style="background-color: #e7e7e7;
border-color: #e7e7e7;
border-radius: 3px;
padding: 0 4px;
font-weight: bold;
color: black;text-decoration: none;">F5749612: clipping.png</a></p>
<p>BUG: 361547</p></div></div><br /><div><strong>TEST PLAN</strong><div><p>Paste this: <tt style="background: #ebebeb; font-size: 13px;">⸻test</tt> in konsole and highlight different parts of the string</p>
<p>In a text editor paste this:</p>
<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">| A |
| ⸻ |
| ⟹ |
| ⧠ |</pre></div>
<p>and move cursor vertically through characters column</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R319 Konsole</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D11237">https://phabricator.kde.org/D11237</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>src/TerminalDisplay.cpp</div></div></div><br /><div><strong>To: </strong>mglb, Konsole<br /><strong>Cc: </strong>Konsole, herrold, ngraham, hindenburg<br /></div>