if (w)
{
XtDestroyWidget(w);
+ m_drawingArea = (WXWidget) 0;
}
- m_mainWidget = (WXWidget) 0;
-
// Only if we're _really_ a canvas (not a dialog box/panel)
if (m_scrolledWindow)
{
if (m_hScrollBar)
{
wxDeleteWindowFromTable((Widget) m_hScrollBar);
+ XtUnmanageChild((Widget) m_hScrollBar);
}
if (m_vScrollBar)
{
wxDeleteWindowFromTable((Widget) m_vScrollBar);
+ XtUnmanageChild((Widget) m_vScrollBar);
}
- UnmanageAndDestroy(m_hScrollBar);
- UnmanageAndDestroy(m_vScrollBar);
+ if (m_hScrollBar)
+ XtDestroyWidget((Widget) m_hScrollBar);
+ if (m_vScrollBar)
+ XtDestroyWidget((Widget) m_vScrollBar);
+
UnmanageAndDestroy(m_scrolledWindow);
if (m_borderWidget)
m_borderWidget = (WXWidget) 0;
}
}
+ else // Why wasn't this here before? JACS 8/3/2000
+ DestroyChildren();
+
// Destroy the window
if (GetMainWidget())
// wxSCROLL[WIN]_THUMBRELEASE events. Also it was reported
// that this call crashed wxMotif under OS/2, so it seems
// that leaving it out is the right thing to do.
-// XtDestroyWidget((Widget) GetMainWidget());
+ // SN, Feb/2000: newgrid/griddemo shows why it is needed :-(
+ XtDestroyWidget((Widget) GetMainWidget());
SetMainWidget((WXWidget) NULL);
}
}
XtDestroyWidget((Widget) m_vScrollBar);
}
m_vScrollBar = (WXWidget) 0;
- m_vScroll = TRUE;
+ m_vScroll = FALSE;
XtVaSetValues((Widget) m_scrolledWindow,
XmNverticalScrollBar, (Widget) 0,
return FALSE;
}
- wxASSERT_MSG( m_cursor.Ok(),
- wxT("cursor must be valid after call to the base version"));
+ // wxASSERT_MSG( m_cursor.Ok(),
+ // wxT("cursor must be valid after call to the base version"));
+ wxCursor* cursor2 = NULL;
+ if (m_cursor.Ok())
+ cursor2 = & m_cursor;
+ else
+ cursor2 = wxSTANDARD_CURSOR;
WXDisplay *dpy = GetXDisplay();
- WXCursor x_cursor = m_cursor.GetXCursor(dpy);
+ WXCursor x_cursor = cursor2->GetXCursor(dpy);
Widget w = (Widget) GetMainWidget();
Window win = XtWindow(w);
Widget widget = (Widget) GetTopWidget();
Dimension xx, yy;
XtVaGetValues(widget, XmNwidth, &xx, XmNheight, &yy, NULL);
- *x = xx; *y = yy;
+ if(x) *x = xx; if(y) *y = yy;
}
void wxWindow::DoGetPosition(int *x, int *y) const
yy -= pt.y;
}
- *x = xx; *y = yy;
+ if(x) *x = xx; if(y) *y = yy;
}
void wxWindow::DoScreenToClient(int *x, int *y) const
Widget widget = (Widget) GetClientWidget();
Dimension xx, yy;
XtVaGetValues(widget, XmNwidth, &xx, XmNheight, &yy, NULL);
- *x = xx; *y = yy;
+ if(x) *x = xx; if(y) *y = yy;
}
void wxWindow::DoSetSize(int x, int y, int width, int height, int sizeFlags)