Kevin Walzer added the comment:

I experimented with Mark's sample code (thanks for that, BTW), and found that 
the window with the "help" tag applied would display with this simple addition:

raise .t

I believe the equivalent call in Tinter is lift(), because raise() is for error 
handling? Perhaps someone can experiment with appropriate calls to lift() in 
the relevant sections of IDLE. 

The "help" style is excluded from becoming a frontmost window by default in OS 
X. Here is the relevant code in tkMacOSXWm.c:

- (BOOL) canBecomeKeyWindow
{
    TkWindow *winPtr = TkMacOSXGetTkWindow(self);

    return (winPtr && winPtr->wmInfoPtr && (winPtr->wmInfoPtr->macClass ==
            kHelpWindowClass || winPtr->wmInfoPtr->attributes &
            kWindowNoActivatesAttribute)) ? NO : YES;
}


Therefore, an explicit call to raise may be helpful in displaying the window.

I realize that such calls are not present in the current IDLE code, and did not 
seem to be required previously--there likely was some change in recent Tk-Cocoa 
commits in event loop handling, memory management, window display, and drawing 
that caused this new bug to crop up. Tracking the actual source of the bug at 
the C level is likely to prove very difficult because there have been so many 
changes. However, since the fix at the script level is trivial, I do not think 
a major effort is necessary to step through the code at the C level.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue24570>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com


Reply via email to