Skip to content

IDLE: completions toplevel blank on Tk Aqua 8.7 #104499

Closed
@chrstphrchvz

Description

# Put widgets in place
self.autocompletewindow = acw = Toplevel(self.widget)
# Put it in a position so that it is not seen.
acw.wm_geometry("+10000+10000")
# Make it float
acw.wm_overrideredirect(1)

Using wm geometry to move an overrideredirect toplevel far enough offscreen triggers a strange bug in recent Tk Aqua 8.7 (assuming it isn’t actually a macOS bug) which leaves the toplevel completely blank. I have reported it upstream: https://core.tcl-lang.org/tk/tktview/132dd3d350

However, I would like to see if IDLE can make a simple change to avoid the issue, in case Tk Aqua does not address it soon. Moving a toplevel far offscreen to hide it while configuring its contents seems improper, as opposed to something like withdrawing it. Hiding the toplevel to avoid visual artifacts is probably no longer necessary, except maybe on something sufficiently slow like X11 forwarding. IDLE also does not make a similar effort to temporarily hide the toplevel for calltips.

So I would suggest making this wm_geometry() call only when acw._windowingsystem == 'x11' or at least acw._windowingsystem != 'aqua'.

Linked PRs

Metadata

Assignees

Type

No type

Projects

  • Status

    Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions