diff --git a/src/motif/dialog.cpp b/src/motif/dialog.cpp index 029f1f7924..712b2e5e66 100644 --- a/src/motif/dialog.cpp +++ b/src/motif/dialog.cpp @@ -258,6 +258,8 @@ void wxDialog::SetModal(bool flag) wxDialog::~wxDialog() { + m_isBeingDeleted = TRUE; + if (m_mainWidget) XtRemoveEventHandler((Widget) m_mainWidget, ExposureMask, FALSE, wxUniversalRepaintProc, (XtPointer) this); diff --git a/src/motif/frame.cpp b/src/motif/frame.cpp index aa411fcb42..121e0bae04 100644 --- a/src/motif/frame.cpp +++ b/src/motif/frame.cpp @@ -300,6 +300,8 @@ bool wxFrame::Create(wxWindow *parent, wxFrame::~wxFrame() { + m_isBeingDeleted = TRUE; + if (m_clientArea) XtRemoveEventHandler((Widget) m_clientArea, ExposureMask, FALSE, wxUniversalRepaintProc, (XtPointer) this); diff --git a/src/motif/window.cpp b/src/motif/window.cpp index 339540128b..f7ed6cb2bb 100644 --- a/src/motif/window.cpp +++ b/src/motif/window.cpp @@ -183,7 +183,8 @@ void wxWindow::Init() m_winCaptured = FALSE; m_isShown = TRUE; - + m_isBeingDeleted = FALSE; + m_hScrollBar = m_vScrollBar = m_borderWidget = @@ -360,6 +361,8 @@ bool wxWindow::Create(wxWindow *parent, wxWindowID id, // Destructor wxWindow::~wxWindow() { + m_isBeingDeleted = TRUE; + // Motif-specific actions first WXWidget wMain = GetMainWidget(); if ( wMain )