New Tkinter windows don't get focus on OS X
Kevin Walzer
kw at codebykevin.com
Thu Sep 10 10:12:18 EDT 2009
On 9/10/09 1:27 AM, Joshua Bronson wrote:
> If you try something like:
>
> $ python -m Tkinter -c 'Tkinter._test()'
>
> in Terminal on OS X, you'll notice that the window that is spawned
> does not get focus, rather focus remains in Terminal. Furthermore, if
> you hit Command+Tab to switch focus to the Python process, you'll
> notice that for some reason Python has been placed last in the focus
> order, even though it was just spawned by Terminal. This is
> undesirable if you're e.g. making a game where stuff happens as soon
> as the window is spawned and the player is expected to respond quickly
> but can't until she Command+Tabs over or clicks in the unfocused
> window. I've googled for this extensively and haven't found a way
> around it, so I thought I'd ask here. If there is a more appropriate
> place to ask, please let me know.
>
> Thanks,
> Josh
Yes, this is standard behavior for OS X. Running an app in Terminal
keeps focus in the Terminal unless you switch by clicking windows. The
Command-Tab behavior is determined by the windowing system, not by a
newly spawned process.
The way around this is to wrap your application up in a standard Mac app
bundle using py2app. The average Mac user isn't going to launch a
Python-based game from the command line.
Kevin
--
Kevin Walzer
Code by Kevin
http://www.codebykevin.com
More information about the Python-list
mailing list