Skip to content

[3.15] gh-143990: Preserve the size when creating a Font from a named font (GH-153267)#153323

Merged
serhiy-storchaka merged 3 commits into
python:3.15from
serhiy-storchaka:backport-45010f4-3.15
Jul 8, 2026
Merged

[3.15] gh-143990: Preserve the size when creating a Font from a named font (GH-153267)#153323
serhiy-storchaka merged 3 commits into
python:3.15from
serhiy-storchaka:backport-45010f4-3.15

Conversation

@serhiy-storchaka

@serhiy-storchaka serhiy-storchaka commented Jul 8, 2026

Copy link
Copy Markdown
Member

Manual backport of GH-153267 to 3.15.

3.15 does not include the font-description wrapping feature from GH-152025, so the change was adapted:

  • the code fix applies to the older Font.__init__ (copy a named font's options with font configure, falling back to font actual for a description that cannot be parsed) and to Font.copy();
  • test_create_from_named_font and the test_copy change apply unchanged;
  • test_create_from_description drops its exists=True (wrapped-description) cases and their oracle, which rely on the 3.16-only feature, keeping the tuple/string descriptions.

🤖 Generated with Claude Code

…font (pythonGH-153267)

tkinter.font.Font now copies the options of a named font (via "font
configure") instead of the options resolved by "font actual", which
would resolve a size specified in pixels (a negative size) to points.
A font description is still resolved, as it cannot be parsed otherwise.

Font.copy(), which has always been equivalent to constructing a Font
from the original font, is updated to match and now preserves the size
too.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
(cherry picked from commit 45010f4)
serhiy-storchaka and others added 2 commits July 8, 2026 15:23
Drop the assertion in test_create_from_named_font that explicit options
override the copied font settings: that behavior was added by pythonGH-152025
and is not in 3.15, where options are ignored when a font is specified.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@serhiy-storchaka serhiy-storchaka merged commit a9d4473 into python:3.15 Jul 8, 2026
53 checks passed
@miss-islington-app

Copy link
Copy Markdown

Thanks @serhiy-storchaka for the PR 🌮🎉.. I'm working now to backport this PR to: 3.13, 3.14.
🐍🍒⛏🤖

@bedevere-app

bedevere-app Bot commented Jul 8, 2026

Copy link
Copy Markdown

GH-153341 is a backport of this pull request to the 3.14 branch.

@bedevere-app bedevere-app Bot removed the needs backport to 3.14 bugs and security fixes label Jul 8, 2026
@bedevere-app

bedevere-app Bot commented Jul 8, 2026

Copy link
Copy Markdown

GH-153342 is a backport of this pull request to the 3.13 branch.

@bedevere-app bedevere-app Bot removed the needs backport to 3.13 bugs and security fixes label Jul 8, 2026
serhiy-storchaka added a commit that referenced this pull request Jul 8, 2026
… font (GH-153267) (GH-153323) (GH-153342)

tkinter.font.Font now copies the options of a named font (via "font
configure") instead of the options resolved by "font actual", which
would resolve a size specified in pixels (a negative size) to points.
A font description is still resolved, as it cannot be parsed otherwise.

Font.copy(), which has always been equivalent to constructing a Font
from the original font, is updated to match and now preserves the size
too.

(cherry picked from commit 45010f4)
(cherry picked from commit a9d4473)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
serhiy-storchaka added a commit that referenced this pull request Jul 8, 2026
… font (GH-153267) (GH-153323) (GH-153341)

tkinter.font.Font now copies the options of a named font (via "font
configure") instead of the options resolved by "font actual", which
would resolve a size specified in pixels (a negative size) to points.
A font description is still resolved, as it cannot be parsed otherwise.

Font.copy(), which has always been equivalent to constructing a Font
from the original font, is updated to match and now preserves the size
too.

(cherry picked from commit 45010f4)
(cherry picked from commit a9d4473)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant