13
0

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:
Paul Davis 2016-06-06 16:05:25 -04:00
parent 084da26cfd
commit 5700296cb6
2 changed files with 10 additions and 2 deletions

View File

@ -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);

View File

@ -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