R-033 / toeterm

Terminal emulator for Sailfish OS, based on ThumbTerm and FingerTerm
GNU General Public License v2.0
3 stars 5 forks source link

Displayed cursor position becomes out of sync with real cursor position with certain font sizes #12

Closed Olf0 closed 6 years ago

Olf0 commented 6 years ago

@R-033, thank you for working around this issue by limiting available font sizes to 4n-1 sizes.

Before that font sizes could be set (e.g. 14), which exhibited this issue (which made ToeTerm unbearable to use, when typing long command lines). Recent versions of ToeTerm still show this issue, when the font size has not been set anew (i.e. to a 4n-1 value). Side note: FingerTerm does also exhibit this issue (it still allows for selecting arbitrary, integer value font sizes by hitting its + and - buttons in its menu).

Still I wonder, why this happens, as it would be useful and nice to be able to set (and properly use) arbitrary font sizes. E.g. font size 15 in landscape orientation on Jolla 1 phones is providing a 79 characters per line, which unfortunately is slightly less than the classic 80x2X layout, hence font size 14 (providing 86 characters per line) would be a much better fit.

R-033 commented 6 years ago

I found solution. Original FingerTerm didn't use this on font: iFont.setStyleStrategy(QFont::ForceIntegerMetrics); And everything looked distorted for some reason, including cursor

Olf0 commented 6 years ago

@R-033, many thanks for ToeTerm 1.6, fixing this (and more).

Olf0 commented 6 years ago

@R-033, I just realised, that this issue has been fixed before: https://github.com/Lourens-Rich/fingerterm/commit/7f90c50db4c88b4727d1bbae8e5b20833803e1a6 which went into @Lourens-Rich's FingerTerm release v1.3.3-4 (2017-03-03) on OpenRepos (https://openrepos.net/content/lourens/fingerterm-terminal-app).

Hence it might be worth looking over and "cherry picking" commits, which have been made in https://github.com/Lourens-Rich/fingerterm/commits/master (of which many have not been integrated upstream at https://git.merproject.org/mer-core/fingerterm/commits/master). Side note: It looks like the other clones ("forks") of FingerTerm did not last long enough to be worth investigating their commits or were device specific (i.e. "reMarkable" repos), and AFAIU https://github.com/OlliV/thumbterm/commits/master is what you used as a basis, anyway.