From 37a2b499e505c9e7158abcc7308ad41f31462f6f Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Thu, 1 Mar 2007 18:53:57 +0000 Subject: [PATCH] use a hidden frame to prevent premature exit on wxMac git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@44588 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- wxPython/wx/tools/helpviewer.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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()