]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-120083: Add IDLE Hovertip foreground color needed for recent macOS (#120605)
authorJohn Riggles <jriggles@icloud.com>
Fri, 2 Aug 2024 03:02:43 +0000 (23:02 -0400)
committerGitHub <noreply@github.com>
Fri, 2 Aug 2024 03:02:43 +0000 (23:02 -0400)
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>
Lib/idlelib/News3.txt
Lib/idlelib/tooltip.py
Misc/NEWS.d/next/IDLE/2024-06-16-21-42-45.gh-issue-120083.nczuyv.rst [new file with mode: 0644]

index a7a92e97b6c2444ef3a30ddec9a509a617d77f1d..37ff93f9866e3c5da51bba61ed7b49a286cd679f 100644 (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.
 
index 3983690dd411771b5af11e0cedef8387d2cca95f..df5b1fe1dcfb0802fdfb534fbf505c7703917230 100644 (file)
@@ -144,7 +144,8 @@ class OnHoverTooltipBase(TooltipBase):
 
 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 @@ class Hovertip(OnHoverTooltipBase):
         """
         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()
 
 
diff --git a/Misc/NEWS.d/next/IDLE/2024-06-16-21-42-45.gh-issue-120083.nczuyv.rst b/Misc/NEWS.d/next/IDLE/2024-06-16-21-42-45.gh-issue-120083.nczuyv.rst
new file mode 100644 (file)
index 0000000..643c2bb
--- /dev/null
@@ -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.\r