MSWidget::~MSWidget(void) { prepareForDestruction(); if (_window!=0) XDestroyWindow(display(),_window); // setting these to zero helps debugging - i.e. one can easily tell if ~ was run _owner=0,_window=0,_server=0,_bg=0,_fg=0,_fontID=0; }
// allowDelete is MSTrue when the queue is processing - // thus if we are deleting a parent widget (one that has // children) from the process method of the deleteQueue, // then the children will be deleted and not put on the // queue, which would be deadly void MSWidget::destroy(void) { extern void applicationAddToWidgetDestructionQueue(MSWidget *); extern MSBoolean applicationAllowWidgetDestruction(void); if (applicationAllowWidgetDestruction()==MSTrue) delete this; else { applicationAddToWidgetDestructionQueue(this); decoupleAllWidgets(); prepareForDestruction(); } }
MovieGlHap::Obj::~Obj() { // see note on prepareForDestruction() prepareForDestruction(); mTexture.reset(); }