mirror of https://github.com/OpenTTD/OpenTTD
(svn r13133) -Codechange: Add a base class (descending from Window) for all new windows that are going to require a ResetObjectToPlace to be performed on closing.
This will allow to free the said window only once, and not twice otherwiserelease/0.7
parent
5199f5ff47
commit
17bd325574
|
@ -2350,3 +2350,13 @@ void RelocateAllWindows(int neww, int newh)
|
||||||
w->top = top;
|
w->top = top;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Destructor of the base class PickerWindowBase
|
||||||
|
* Main utility is to stop the base Window destructor from triggering
|
||||||
|
* a free while the child will already be free, in this case by the ResetObjectToPlace().
|
||||||
|
*/
|
||||||
|
PickerWindowBase::~PickerWindowBase()
|
||||||
|
{
|
||||||
|
this->window_class = WC_INVALID; // stop the ancestor from freeing the already (to be) child
|
||||||
|
ResetObjectToPlace();
|
||||||
|
}
|
||||||
|
|
|
@ -256,7 +256,7 @@ struct ViewportData : ViewPort {
|
||||||
int32 dest_scrollpos_y;
|
int32 dest_scrollpos_y;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Data structure for an opened window
|
* Data structure for an opened window
|
||||||
*/
|
*/
|
||||||
struct Window : ZeroedMemoryAllocator {
|
struct Window : ZeroedMemoryAllocator {
|
||||||
|
@ -493,6 +493,17 @@ public:
|
||||||
/*** End of the event handling ***/
|
/*** End of the event handling ***/
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Data structure for a window opened from a toolbar
|
||||||
|
*/
|
||||||
|
class PickerWindowBase : public Window {
|
||||||
|
|
||||||
|
public:
|
||||||
|
PickerWindowBase(const WindowDesc *desc) : Window(desc) {}; // nothing special yet, just propagation
|
||||||
|
|
||||||
|
virtual ~PickerWindowBase();
|
||||||
|
};
|
||||||
|
|
||||||
enum SortListFlags {
|
enum SortListFlags {
|
||||||
VL_NONE = 0, ///< no sort
|
VL_NONE = 0, ///< no sort
|
||||||
VL_DESC = 1 << 0, ///< sort descending or ascending
|
VL_DESC = 1 << 0, ///< sort descending or ascending
|
||||||
|
|
Loading…
Reference in New Issue