Skip to content

Commit 75a6576

Browse files
OmkarSarkar204amilcarlucas
authored andcommitted
fix(macos): address AI comments and ci test
Signed-off-by: Omkar Sarkar <omkarsarkar24@gmail.com>
1 parent a094edf commit 75a6576

File tree

2 files changed

+17
-10
lines changed

2 files changed

+17
-10
lines changed

ardupilot_methodic_configurator/frontend_tkinter_show.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
# https://wiki.tcl-lang.org/page/Changing+Widget+Colors
1212

13+
import contextlib
1314
import tkinter as tk
1415
from platform import system as platform_system
1516
from tkinter import messagebox, ttk
@@ -508,7 +509,8 @@ def __init__( # pylint: disable=too-many-arguments, too-many-positional-argumen
508509
def _cancel_show(self) -> None:
509510
"""Cancel any pending show timer."""
510511
if self.show_timer:
511-
self.widget.after_cancel(self.show_timer)
512+
with contextlib.suppress(tk.TclError):
513+
self.widget.after_cancel(self.show_timer)
512514
self.show_timer = None
513515

514516
def show(self, event: Optional[tk.Event] = None) -> None: # noqa: ARG002 # pylint: disable=unused-argument
@@ -523,13 +525,16 @@ def show(self, event: Optional[tk.Event] = None) -> None: # noqa: ARG002 # pyli
523525
def _cancel_hide(self, event: Optional[tk.Event] = None) -> None: # noqa: ARG002 # pylint: disable=unused-argument
524526
"""Cancel the hide timer."""
525527
if self.hide_timer:
526-
self.widget.after_cancel(self.hide_timer)
528+
with contextlib.suppress(tk.TclError):
529+
self.widget.after_cancel(self.hide_timer)
527530
self.hide_timer = None
528531

529532
def _hide_active_tooltip(self) -> None:
530533
"""Hide another active tooltip before showing this one."""
531534
if Tooltip._active_tooltip and Tooltip._active_tooltip is not self:
532-
Tooltip._active_tooltip.force_hide()
535+
with contextlib.suppress(tk.TclError):
536+
Tooltip._active_tooltip.force_hide()
537+
Tooltip._active_tooltip = None
533538

534539
def schedule_show(self, event: Optional[tk.Event] = None) -> None: # noqa: ARG002 # pylint: disable=unused-argument
535540
"""Delay tooltip creation slightly to avoid flicker during pointer movement."""
@@ -568,6 +573,9 @@ def create_show(self, event: Optional[tk.Event] = None) -> None: # noqa: ARG002
568573
)
569574
tooltip_label.pack()
570575
self.position_tooltip()
576+
577+
self.tooltip.update_idletasks() # Force macOS to finish rendering text
578+
571579
self.tooltip.deiconify()
572580
Tooltip._active_tooltip = self
573581

tests/bdd_frontend_tkinter_show.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -899,12 +899,12 @@ def test_tooltip_destroy_hide_on_macos(self, mock_widget: MagicMock, mock_toplev
899899
"""
900900
with patch("ardupilot_methodic_configurator.frontend_tkinter_show.platform_system", return_value="Darwin"):
901901
tooltip = Tooltip(mock_widget, "Test text")
902-
tooltip.tooltip = mock_toplevel
902+
tooltip.tooltip = mock_toplevel # Set the mock window while in "Mac mode"
903903

904-
tooltip.destroy_hide()
904+
tooltip.destroy_hide()
905905

906-
mock_toplevel.destroy.assert_called_once()
907-
assert tooltip.tooltip is None
906+
mock_toplevel.destroy.assert_called_once()
907+
assert tooltip.tooltip is None
908908

909909
def test_tooltip_schedule_show_on_macos(self, mock_widget: MagicMock) -> None:
910910
"""
@@ -916,10 +916,9 @@ def test_tooltip_schedule_show_on_macos(self, mock_widget: MagicMock) -> None:
916916
"""
917917
with patch("ardupilot_methodic_configurator.frontend_tkinter_show.platform_system", return_value="Darwin"):
918918
tooltip = Tooltip(mock_widget, "Test text")
919+
tooltip.schedule_show()
919920

920-
tooltip.schedule_show()
921-
922-
mock_widget.after.assert_called_once_with(TOOLTIP_SHOW_DELAY_MS, tooltip.create_show)
921+
mock_widget.after.assert_called_once_with(TOOLTIP_SHOW_DELAY_MS, tooltip.create_show)
923922

924923
def test_tooltip_create_show_hides_previous_active_tooltip(self, mock_widget: MagicMock, mock_toplevel: MagicMock) -> None:
925924
"""

0 commit comments

Comments
 (0)