nextcloud / desktop

💻 Desktop sync client for Nextcloud
https://nextcloud.com/install/#install-clients
GNU General Public License v2.0
3.02k stars 793 forks source link

[Bug]: Incorrect font size & UI spacing on high DPI monitor, on Windows #5373

Open Cl00e9ment opened 1 year ago

Cl00e9ment commented 1 year ago

⚠️ Before submitting, please verify the following: ⚠️

Bug description

On small screens with high DPI (so most modern laptops), the font size and spacing between UI elements are either too small or big on Windows.

Possibly related to:

See screenshots bellow:

note: The screenshots cover the whole screen, only the taskbar was omitted. note: You might not see an issue viewing the screenshots, but keep in mind that the UI appears smaller on a high DPI screens.

100% scaling

UI-100

125% scaling

UI-125

150% scaling (default, and recommended setting for high DPI screen)

UI-250-1 UI-250-2 UI-250-3

Steps to reproduce

  1. Get a Windows laptop with high DPI screen and keep the scaling at the default value (150%).
  2. Install the client.
  3. Open the client.

Expected behavior

The UI should be usable on high DPI screens.

Right now, the text is not readable at 100% or 125% scaling and the window don't fit in the screen at 150% scaling.

Which files are affected by this bug

?

Operating system

Windows

Which version of the operating system you are running.

Windows 10

Package

Other

Nextcloud Server version

25.0.3

Nextcloud Desktop Client version

3.3.6

Is this bug present after an update or on a fresh install?

Fresh desktop client install

Are you using the Nextcloud Server Encryption module?

Encryption is Disabled

Are you using an external user-backend?

Nextcloud Server logs

No response

Additional info

No response

PiKeyAr commented 1 year ago

Workaround: add an environment variable called QT_SCALE_FACTOR_ROUNDING_POLICY and set it to PassThrough. This fixes most of the UI, however the window that appears when you click the system tray icon will appear blurry.

SamSirry commented 1 year ago

QT_SCALE_FACTOR_ROUNDING_POLICY

Is this a Windows thing? Does it work also with other apps, or is it only for NextCloud?

march42 commented 1 year ago

Is this a Windows thing? Does it work also with other apps, or is it only for NextCloud?

It's a Qt GUI application framework thing. And it works with gui applications based on Qt, which are quite a lot.

The application can use setHighDpiScaleFactorRoundingPolicy itself, See the docs at https://doc.qt.io/qt-5/qguiapplication.html And it can cause side effects, see QT-BUG 86344

tipichris commented 1 year ago

Even with the QT_SCALE_FACTOR_ROUNDING_POLICY set the resolve conflict dialogue is too tall to get to the button, and they don't seem to respond to the keyboard, so I'm unable to resolve any conflicts.

HirIMogul commented 1 year ago

Even with the QT_SCALE_FACTOR_ROUNDING_POLICY set the resolve conflict dialogue is too tall to get to the button, and they don't seem to respond to the keyboard, so I'm unable to resolve any conflicts.

I just ran into exactly this problem using the default 150% scaling on a 2k Lenovo 14" (X1 Yoga 3rd). To resolve the conflict I temporarily changed DPI Scaling to 100%. One can't expect that from a regular user.

rit001 commented 1 year ago

I've just started to eval Nextcloud and have been hit by this issue. On a 32" monitor running Windows 11 at 4K with 125% scaling the font used makes the Netcloud window very small.

In the UK, the app has a major issue in any business environment as companies have a pile of Health and Safety laws to follow, one of which covers VDU usage (yes it is that old). The key line is that

"The characters on the screen shall be well-defined and clearly formed, of adequate size and with adequate spacing between the characters and lines."

This was written at the time people were trying to view an 80x24 character screen that may have been 14" in size. The Nextcloud app ends up trying to display its detail in a 3.5" x 4" window. This makes the app unusable on systems that exhibit this issue.

The issue is very much with the logic within the app as when I set scaling to 150% the app's ends up being displayed as an 8" x 10" window. So a change in font scale from 125% to 150% ends up with app scaling by more than 100%.

yjeanrenaud commented 10 months ago

Qt allows dynamic scaling, that would be an idea to be implented in the windows client as an option in the settings. Will see if I got time to fork and think of a patch

I started working on a patch https://github.com/nextcloud/desktop/compare/master...yjeanrenaud:desktop:master

joshtrichards commented 2 months ago

Related: