surge-synthesizer / surge

Synthesizer plug-in (previously released as Vember Audio Surge)
https://surge-synthesizer.github.io/
GNU General Public License v3.0
3.15k stars 400 forks source link

standalone linux menu/browser font size is inconsistent with zoom #6642

Open gaydenko opened 2 years ago

gaydenko commented 2 years ago

1.1 is running under Linux (Manjaro), KDE. 4K monitor is in use with 200% scaling. The app is used with 300% zooming in. Menu/presets browser font size are to tiny to me readable. Please, look at the attached image. Terminal window on the background is also shown for the reference. A window title also doesn't respect zoom factor. SurgeXT-font-size-01

gaydenko commented 2 years ago

Addition: the issue takes place when the app is started as standalone one. When VST3 plugin is inserted into, say, Reaper, the scaling/zooming is respected.

baconpaul commented 2 years ago

Yeah the problem here is there is no scale setup api in the standalone so we don't get told (and there in the VST3 spec which Reaper reports to us via juce so it does). It might be an easy fix / omission but it also might not be.

Appreciate the detailed report. Thank you! I'll tag this into the 1.1.2 milestone to make sure that we at least take a look before our next release.

mkruselj commented 2 years ago

Possibly related to #5541 and/or #5790 somehow?

gaydenko commented 2 years ago

A little addition. While menu scaling is Ok when the app is used as plugin inside a DAW, a dialog on saving a parch with the same name (saying the patch will be overridden) is also very tiny.

Brier1104 commented 2 years ago

This problem also exists as a CLAP vst in Bitwig Studio. It's almost impossible to read menus on a 2k monitor with scaling at 300%.

baconpaul commented 1 year ago

discord user wandlewolf tells us this impacts dialog boxes messages also like 'rename or delete chicken box'

baconpaul commented 1 year ago

With 1.3 those dialogs are all internal so this comes back to

baconpaul commented 1 year ago

So the only fix I see to the standalone side of this is to query the dpi on linux and then adjust the juce rendering of the menus with a transform explicitly.

The first seems hard [https://stackoverflow.com/questions/71120399/how-get-correct-dpi-information-on-linux] and the second is really difficult. This doesn't occur in daws with the correct scale factor except in the CLAP, which is a separate issue, so I'm going to bounce this out of the 1.3 milestone. I don't have the particular expertise about scaled linux displays to do it.