top_level_drawable: Implement copy and move constructors
This commit is contained in:
parent
afd6baa7cf
commit
f6763be08b
3 changed files with 31 additions and 1 deletions
|
@ -290,9 +290,10 @@ void raise_drawable(top_level_drawable* tld)
|
|||
static void tidy_drawables()
|
||||
{
|
||||
// Remove all invalidated TLDs from the list.
|
||||
DBG_DM << "tidying drawables";
|
||||
DBG_DM << "tidying " << top_level_drawables_.size() << " drawables";
|
||||
auto& vec = top_level_drawables_;
|
||||
vec.erase(std::remove(vec.begin(), vec.end(), nullptr), vec.end());
|
||||
DBG_DM << top_level_drawables_.size() << " after tidying";
|
||||
}
|
||||
|
||||
} // namespace draw_manager
|
||||
|
|
|
@ -29,4 +29,26 @@ top_level_drawable::~top_level_drawable()
|
|||
draw_manager::deregister_drawable(this);
|
||||
}
|
||||
|
||||
top_level_drawable::top_level_drawable(const top_level_drawable&)
|
||||
{
|
||||
draw_manager::register_drawable(this);
|
||||
}
|
||||
|
||||
top_level_drawable& top_level_drawable::operator=(const top_level_drawable&)
|
||||
{
|
||||
draw_manager::register_drawable(this);
|
||||
return *this;
|
||||
}
|
||||
|
||||
top_level_drawable::top_level_drawable(top_level_drawable&&)
|
||||
{
|
||||
draw_manager::register_drawable(this);
|
||||
}
|
||||
|
||||
top_level_drawable& top_level_drawable::operator=(top_level_drawable&&)
|
||||
{
|
||||
draw_manager::register_drawable(this);
|
||||
return *this;
|
||||
}
|
||||
|
||||
} // namespace gui2
|
||||
|
|
|
@ -53,6 +53,13 @@ class top_level_drawable
|
|||
protected:
|
||||
top_level_drawable();
|
||||
virtual ~top_level_drawable();
|
||||
|
||||
// These make sure the TLD is registered.
|
||||
top_level_drawable(const top_level_drawable&);
|
||||
top_level_drawable& operator=(const top_level_drawable&);
|
||||
top_level_drawable(top_level_drawable&&);
|
||||
top_level_drawable& operator=(top_level_drawable&&);
|
||||
|
||||
public:
|
||||
/**
|
||||
* Update state and any parameters that may effect layout, or any of
|
||||
|
|
Loading…
Add table
Reference in a new issue