Recent

Author Topic: [SOLVED] macOS/Cocoa - Blurry text in TVirtualStringTree (again?)  (Read 539 times)

Hansaplast

  • Hero Member
  • *****
  • Posts: 730
  • Tweaking4All.com
    • Tweaking4All
Maybe I am missing something here, but with the latest trunk (didn't test earlier trunk version) I noticed that TVirtualStringTree show very blurry text no matter what I try. This seems to have been a Cocoa specific issue in the past, so maybe we're just looking at regression in trunk?

Trunk versions build with FPCUpDeluxe:
   Lazarus 4.99 (rev main_4_99-1960-gb2a22bea0d)
   FPC 3.3.1 x86_64-darwin-cocoa

VirtualTreeview version:
   latest 5.5.3 (tested the one that came with Lazarus trunk and the one found on github)

macOS Sequoia 15.5, Apple Silicon, tested with x86_64 and AARCH64 builds.
Xcode/Commandline tools: 16.4.
Tested with and without extra compiler directive (-WM10.15).

Related (old) posts in the forum:
   TVirtualStringTree - poor fonts rendering quality on macOS
   Alternative to VirtualTreeView in Cocoa which does not mess up other controls?
   VirtualTreeView Font in Cocoa
   VirtualtreeView and DPI related issues

I did see this very old bug report, but it is locked - probably for a good reason hence my question here.

Does anyone know how to fix this? Or should I open a new bug report?

Example project attached.
« Last Edit: June 12, 2025, 02:25:13 pm by Hansaplast »

Thaddy

  • Hero Member
  • *****
  • Posts: 17148
  • Ceterum censeo Trump esse delendam
Re: macOS/Cocoa - Blurry text in TVirtualStringTree (again?)
« Reply #1 on: June 10, 2025, 10:01:09 am »
Change the font to the OS default and correct size.
Tested on M4 mini. You are probably using a font that is too small.
Trunk from today.
But feel free to open a bug report, because it is indeed not as intended: I had to adapt the font size!
« Last Edit: June 10, 2025, 10:09:19 am by Thaddy »
Due to censorship, I changed this to "Nelly the Elephant". Keeps the message clear.

Hansaplast

  • Hero Member
  • *****
  • Posts: 730
  • Tweaking4All.com
    • Tweaking4All
Re: macOS/Cocoa - Blurry text in TVirtualStringTree (again?)
« Reply #2 on: June 10, 2025, 10:13:12 am »
Thanks Thaddy for chiming in - always good to know it's not just me ...

I still get the same blurry text with the default font.
Tried sizes 8, 10, 12 and 14, and they all remain blurry (had to changed deafultNodeHeight).
What size are you using?

Thaddy

  • Hero Member
  • *****
  • Posts: 17148
  • Ceterum censeo Trump esse delendam
Re: macOS/Cocoa - Blurry text in TVirtualStringTree (again?)
« Reply #3 on: June 10, 2025, 10:17:54 am »
Either 16 or -12. Fonts can have negative values to translate to pixels or points.
I used -12.
I do not have a fancy screen, just full HD, not a 4K.
« Last Edit: June 10, 2025, 10:21:25 am by Thaddy »
Due to censorship, I changed this to "Nelly the Elephant". Keeps the message clear.

Hansaplast

  • Hero Member
  • *****
  • Posts: 730
  • Tweaking4All.com
    • Tweaking4All
Re: macOS/Cocoa - Blurry text in TVirtualStringTree (again?)
« Reply #4 on: June 10, 2025, 10:26:24 am »
Thanks Thaddy.
Unfortunately; the text remains blurry.
Thank you for the tip though. Running on a Macbook Pro M1 - maybe it looks different, as you're using a different screen?
Posted a bug report (41708) - maybe others can give it a thumb up so the devs know this is not just a random incident  ;)
« Last Edit: June 10, 2025, 10:29:08 am by Hansaplast »

Hansaplast

  • Hero Member
  • *****
  • Posts: 730
  • Tweaking4All.com
    • Tweaking4All
Re: macOS/Cocoa - Blurry text in TVirtualStringTree (again?)
« Reply #5 on: June 12, 2025, 02:24:43 pm »
Thanks Rich2014 for pointing me in the right direction! (BugTracker)

It was far from obvious to me that TVirtualStringTree is supposed to be replaced with TLazVirtualStringTree (laz.VirtualTrees), not to mention the migration didn't go quite as smooth as I'd hoped. Either way though it fixed the issue.

Since others have seen this issue, I figured it would be good to post "the fix" here.
Replace TVirtualStringTree with TLazVirtualStringTree (unit: laz.VirtualTrees).

zeljko

  • Hero Member
  • *****
  • Posts: 1764
    • http://wiki.lazarus.freepascal.org/User:Zeljan
Re: [SOLVED] macOS/Cocoa - Blurry text in TVirtualStringTree (again?)
« Reply #6 on: June 12, 2025, 08:47:22 pm »
Because TLazVirtualStringTree implements GetCanvasScaleFactor and SetCanvasScaleFactor when drawing bitmaps ...

 

TinyPortal © 2005-2018