add a destructor for Gtkmm2ext::Pane that unparents the children.
This seems to be required, although there is confusion in Gtkmm3 about this.
This commit is contained in:
parent
084da26cfd
commit
5700296cb6
@ -55,6 +55,8 @@ class LIBGTKMM2EXT_API Pane : public Gtk::Container
|
||||
typedef std::list<Child> Children;
|
||||
|
||||
Pane (bool horizontal);
|
||||
~Pane();
|
||||
|
||||
void set_divider (std::vector<float>::size_type divider, float fract);
|
||||
float get_divider (std::vector<float>::size_type divider = 0);
|
||||
void set_child_minsize (Gtk::Widget const &, int32_t);
|
||||
|
@ -44,6 +44,13 @@ Pane::Pane (bool h)
|
||||
}
|
||||
}
|
||||
|
||||
Pane::~Pane ()
|
||||
{
|
||||
for (Children::iterator c = children.begin(); c != children.end(); ++c) {
|
||||
c->w->unparent ();
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
Pane::set_child_minsize (Gtk::Widget const& w, int32_t minsize)
|
||||
{
|
||||
@ -149,12 +156,11 @@ Pane::on_remove (Widget* w)
|
||||
{
|
||||
for (Children::iterator c = children.begin(); c != children.end(); ++c) {
|
||||
if (c->w == w) {
|
||||
w->unparent ();
|
||||
children.erase (c);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
w->unparent ();
|
||||
}
|
||||
|
||||
void
|
||||
|
Loading…
Reference in New Issue
Block a user