gh-120083: Add IDLE Hovertip foreground color needed for recent macOS (#120605)

On recent versions of macOS (sometime between Catalina and Sonoma 14.5), the default Hovertip foreground color changed from black to white, thereby matching the background. This might be a matter of matching the white foreground of the dark-mode text. The unreadable result is shown here (#120083 (comment)).

The foreground and background colors were made parameters so we can pass different colors for future additional hovertips in IDLE.
---------

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
This commit is contained in:
John Riggles 2024-08-01 23:02:43 -04:00 committed by GitHub
parent dbdbef3668
commit 5a7f7c4864
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 11 additions and 2 deletions

View File

@ -4,6 +4,10 @@ Released on 2024-10-xx
=========================
gh-120083: Add explicit black IDLE Hovertip foreground color needed for
recent macOS. Fixes Sonoma showing unreadable white on pale yellow.
Patch by John Riggles.
gh-122482: Change About IDLE to direct users to discuss.python.org
instead of the now unused idle-dev email and mailing list.

View File

@ -144,7 +144,8 @@ def hidetip(self):
class Hovertip(OnHoverTooltipBase):
"A tooltip that pops up when a mouse hovers over an anchor widget."
def __init__(self, anchor_widget, text, hover_delay=1000):
def __init__(self, anchor_widget, text, hover_delay=1000,
foreground="#000000", background="#ffffe0"):
"""Create a text tooltip with a mouse hover delay.
anchor_widget: the widget next to which the tooltip will be shown
@ -156,10 +157,13 @@ def __init__(self, anchor_widget, text, hover_delay=1000):
"""
super().__init__(anchor_widget, hover_delay=hover_delay)
self.text = text
self.foreground = foreground
self.background = background
def showcontents(self):
label = Label(self.tipwindow, text=self.text, justify=LEFT,
background="#ffffe0", relief=SOLID, borderwidth=1)
relief=SOLID, borderwidth=1,
foreground=self.foreground, background=self.background)
label.pack()

View File

@ -0,0 +1 @@
Add explicit black IDLE Hovertip foreground color needed for recent macOS. Fixes Sonoma showing unreadable white on pale yellow. Patch by John Riggles.