diff --git a/wxPython/wx/tools/helpviewer.py b/wxPython/wx/tools/helpviewer.py index b025eccce1..26fff9794c 100644 --- a/wxPython/wx/tools/helpviewer.py +++ b/wxPython/wx/tools/helpviewer.py @@ -26,6 +26,12 @@ import sys, os #--------------------------------------------------------------------------- +def makeOtherFrame(helpctrl): + import wx + parent = helpctrl.GetFrame() + otherFrame = wx.Frame(parent) + + def main(args=sys.argv): if len(args) < 2: print __doc__ @@ -66,6 +72,16 @@ def main(args=sys.argv): print "Adding %s..." % helpfile helpctrl.AddBook(helpfile, 1) + # on Mac a menubar and About box are added for HIG compliance, but + # the frame used by the HtmlHelpController is set to not prevent + # app exit. So in the case of a standalone helpviewer like this + # when the about box is closed that frame will be the only one + # left and the app will close unexpectedly. To work around this + # we'll create another frame that is never shown, but which will + # be closed when the helpviewer frame is closed. + if "wxMac" in wx.PlatformInfo: + wx.CallAfter(makeOtherFrame, helpctrl) + # start it up! helpctrl.DisplayContents() app.MainLoop()