| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
…font 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>
|
Thanks @serhiy-storchaka for the PR 🌮🎉.. I'm working now to backport this PR to: 3.15. |
Sorry, something went wrong.
|
Sorry, @serhiy-storchaka, I could not cleanly backport this to 3.15 due to a conflict. cherry_picker 45010f441d392558f1be8f3cea7d86954ed2217d 3.15 |
Sorry, something went wrong.
|
GH-153323 is a backport of this pull request to the 3.15 branch. |
Sorry, something went wrong.
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>
… font (GH-153267) (GH-153323) 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) Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
… 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>
… 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>
| Back | FazBrowse Home | New Git URL |
When a tkinter.font.Font is created from another font, Font.__init__ expanded it into concrete options with Tcl's font actual. For a named font this resolves the configured size, so a size specified in pixels (a negative size) was silently converted to a size in points (gh-143990).
font configure returns the configured options and preserves such a size, but it only accepts a font name, not a font description. So the font is now expanded with font configure when it is a named font, falling back to font actual when it is a font description:
Trying font configure first delegates the "is this a named font?" decision to Tcl, which is robust even for font names containing spaces.
A font description (a tuple or a string) is still resolved via font actual, since there is no way to parse it into options otherwise; wrapping it with exists=True (gh-143990, #152025) remains the way to use it without loss of precision.
Font.copy() has always been equivalent to constructing a Font from the original font (both went through font actual), so it is updated to match and now preserves the size too.
This is the general form of #143992, which restored the size only for a size given in a tuple.