Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use Segoe UI font on Windows. #4769

Merged
merged 1 commit into from
May 21, 2020
Merged

Use Segoe UI font on Windows. #4769

merged 1 commit into from
May 21, 2020

Conversation

phoerious
Copy link
Member

@phoerious phoerious commented May 21, 2020

Qt uses "MS Shell Dlg 2" as the default font, which resolves to Tahoma and not Segoe UI, which is the actual Windows 10 default font.

Screenshots

Before:
tahoma

After:
segoe

Testing strategy

I checked the exact pixel dimensions of the font at various font scaling settings. The application still doesn't react immediately when you change the "Make text bigger" setting, but at least it does react at all now (after a restart).

Type of change

  • ✅ Bug fix (non-breaking change that fixes an issue)

@phoerious phoerious added this to the v2.6.0 milestone May 21, 2020
@phoerious phoerious requested a review from droidmonkey May 21, 2020 01:09
@phoerious phoerious force-pushed the fix/windows-default-font branch 2 times, most recently from 0c800b6 to c4f2126 Compare May 21, 2020 01:11
@phoerious phoerious marked this pull request as draft May 21, 2020 01:12
@droidmonkey
Copy link
Member

droidmonkey commented May 21, 2020

I don't see any difference at all:

image

Left side is before this PR, right side is this PR. They are exactly the same.

@phoerious
Copy link
Member Author

phoerious commented May 21, 2020

I believe Qt is either not using Tahoma everywhere or the fix doesn't apply to all widgets (I doubt that, since with the fix, those areas react when I change the font size in Windows, but not without it, so you can even see it as an accessibility fix in some way). On HighDPI, the difference is generally more minute, because all fonts naturally look better, but on LowDPI, there is a very stark difference, particularly on the non-standard widgets:

ui-diff3

Particularly the "U" in "Unlock" looks ugly and badly hinted without the fix. The TreeViews look the same, but even on HighDPI you see quite some vertical shifting in some areas:

ui-diff1

Here's the unlock dialogue on HighDPI:

ui-diff2

I found a Qt bug report about this and it seems the behaviour will be fixed in Qt 6: https://bugreports.qt.io/browse/QTBUG-58610
There is already code for fixing the default font detection in Qt5, but it's ifdef'ed for some reason. I might just steal that code for a better and more elegant fix.

@phoerious
Copy link
Member Author

MuseScore have a very elegant fix: They are querying the "QMessageBox" font, which is already correct: https://github.com/musescore/MuseScore/pull/5791/files

@phoerious phoerious force-pushed the fix/windows-default-font branch from c4f2126 to 8cb5ea4 Compare May 21, 2020 12:10
@phoerious
Copy link
Member Author

I borrowed the MuseScore fix, which is much shorter. The effect is the same.

@phoerious phoerious force-pushed the fix/windows-default-font branch from 8cb5ea4 to 2958b17 Compare May 21, 2020 12:11
@phoerious phoerious marked this pull request as ready for review May 21, 2020 12:14
Qt uses "MS Shell Dlg 2" as the default font, which resolves to
Tahoma and not Segoe UI, which is the actual Windows 10 default font.

See QTBUG-58610
@phoerious phoerious force-pushed the fix/windows-default-font branch from 2958b17 to 6b606d1 Compare May 21, 2020 12:28
@droidmonkey
Copy link
Member

NICE

@phoerious phoerious merged commit bcb64a2 into develop May 21, 2020
@phoerious phoerious deleted the fix/windows-default-font branch May 21, 2020 16:54
droidmonkey added a commit that referenced this pull request Jul 7, 2020
Added

- Custom Light and Dark themes [#4110, #4769, #4791, #4796, #4892, #4915]
- Compact mode to use classic Group and Entry line height [#4910]
- View menu to quickly switch themes, compact mode, and toggle UI elements [#4910]
- Search for groups and scope search to matched groups [#4705]
- Save Database Backup feature [#4550]
- Sort entries by "natural order" and move lines up/down [#4357]
- Option to launch KeePassXC on system startup/login [#4675]
- Caps Lock warning on password input fields [#3646]
- Add "Size" column to entry view [#4588]
- Browser-like tab experience using Ctrl+[Num] (Alt+[Num] on Linux) [#4063, #4305]
- Password Generator: Define additional characters to choose from [#3876]
- Reports: Database password health check (offline) [#3993]
- Reports: HIBP online service to check for breached passwords [#4438]
- Auto-Type: DateTime placeholders [#4409]
- Browser: Show group name in results sent to browser extension [#4111]
- Browser: Ability to define a custom browser location (macOS and Linux only) [#4148]
- Browser: Ability to change root group UUID and inline edit connection ID [#4315, #4591]
- CLI: `db-info` command [#4231]
- CLI: Use wl-clipboard if xclip is not available (Linux) [#4323]
- CLI: Incorporate xclip into snap builds [#4697]
- SSH Agent: Key file path env substitution, SSH_AUTH_SOCK override, and connection test [#3769, #3801, #4545]
- SSH Agent: Context menu actions to add/remove keys [#4290]

Changed

- Complete replacement of default database icons [#4699]
- Complete replacement of application icons [#4066, #4161, #4203, #4411]
- Complete rewrite of documentation and manpages using Asciidoctor [#4937]
- Complete refactor of config files; separate between local and roaming [#4665]
- Complete refactor of browser integration and proxy code [#4680]
- Complete refactor of hardware key integration (YubiKey and OnlyKey) [#4584, #4843]
- Significantly improve performance when saving and opening databases [#4309, #4833]
- Remove read-only detection for database files [#4508]
- Overhaul of password fields and password generator [#4367]
- Replace instances of "Master Key" with "Database Credentials" [#4929]
- Change settings checkboxes to positive phrasing for consistency [#4715]
- Improve UX of using entry actions (focus fix) [#3893]
- Set expiration time to Now when enabling entry expiration [#4406]
- Always show "New Entry" in context menu [#4617]
- Issue warning before adding large attachments [#4651]
- Improve importing OPVault [#4630]
- Improve AutoOpen capability [#3901, #4752]
- Check for updates every 7 days even while still running [#4752]
- Improve Windows installer UI/UX [#4675]
- Improve config file handling of portable distribution [#4131, #4752]
- macOS: Hide dock icon when application is hidden to tray [#4782]
- Browser: Use unlock dialog to improve UX of opening a locked database [#3698]
- Browser: Improve database and entry settings experience [#4392, #4591]
- Browser: Improve confirm access dialog [#2143, #4660]
- KeeShare: Improve monitoring file changes of shares [#4720]
- CLI: Rename `create` command to `db-create` [#4231]
- CLI: Cleanup `db-create` options (`--set-key-file` and `--set-password`) [#4313]
- CLI: Use stderr for help text and password prompts [#4086, #4623]
- FdoSecrets: Display existing secret service process [#4128]

Fixed

- Fix changing focus around the main window using tab key [#4641]
- Fix search field clearing while still using the application [#4368]
- Improve search help widget displaying on macOS and Linux [#4236]
- Return keyboard focus after editing an entry [#4287]
- Reset database path after failed "Save As" [#4526]
- Use SHA256 Digest for Windows code signing [#4129]
- Improve handling of ccache when building [#4104, #4335]
- macOS: Properly re-hide application window after browser integration and Auto-Type usage [#4909]
- Auto-Type: Fix crash when performing on new entry [#4132]
- Browser: Send legacy HTTP settings to recycle bin [#4589]
- Browser: Fix merging browser keys [#4685]
- CLI: Fix encoding when exporting database [#3921]
- SSH Agent: Improve reliability and underlying code [#3833, #4256, #4549, #4595]
- FdoSecrets: Fix crash when editing settings before service is enabled [#4332]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants