summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2009-07-18 03:17:47 +0000
committerCarl Hetherington <carl@carlh.net>2009-07-18 03:17:47 +0000
commit2e7eeef44868d84f51e0d4b54d31e39d7cf26918 (patch)
treef186d78b5691449562cebb3a4e2dd24b2bb53204
parentfea3992f29d3a3d419529a99692b46dd9dafee58 (diff)
Better fix for non-rearrangement after open for the port matrix.
git-svn-id: svn://localhost/ardour2/branches/3.0@5377 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--gtk2_ardour/port_group.cc10
-rw-r--r--gtk2_ardour/port_group.h4
-rw-r--r--gtk2_ardour/port_matrix.cc20
-rw-r--r--gtk2_ardour/port_matrix.h4
4 files changed, 26 insertions, 12 deletions
diff --git a/gtk2_ardour/port_group.cc b/gtk2_ardour/port_group.cc
index beaa69959d..2e9ef4389d 100644
--- a/gtk2_ardour/port_group.cc
+++ b/gtk2_ardour/port_group.cc
@@ -64,7 +64,7 @@ PortGroup::add_bundle (boost::shared_ptr<Bundle> b)
_bundles.push_back (r);
- Modified ();
+ Changed ();
}
/** Add a bundle to a group.
@@ -84,7 +84,7 @@ PortGroup::add_bundle (boost::shared_ptr<Bundle> b, Gdk::Color c)
_bundles.push_back (r);
- Modified ();
+ Changed ();
}
void
@@ -104,7 +104,7 @@ PortGroup::remove_bundle (boost::shared_ptr<Bundle> b)
i->changed_connection.disconnect ();
_bundles.erase (i);
- Modified ();
+ Changed ();
}
void
@@ -122,7 +122,7 @@ PortGroup::clear ()
}
_bundles.clear ();
- Modified ();
+ Changed ();
}
bool
@@ -439,7 +439,7 @@ PortGroupList::add_group (boost::shared_ptr<PortGroup> g)
{
_groups.push_back (g);
- g->Modified.connect (sigc::mem_fun (*this, &PortGroupList::emit_changed));
+ g->Changed.connect (sigc::mem_fun (*this, &PortGroupList::emit_changed));
_bundle_changed_connections.push_back (
g->BundleChanged.connect (sigc::hide (sigc::mem_fun (*this, &PortGroupList::emit_changed)))
diff --git a/gtk2_ardour/port_group.h b/gtk2_ardour/port_group.h
index f3f84a23ad..22dee8de5e 100644
--- a/gtk2_ardour/port_group.h
+++ b/gtk2_ardour/port_group.h
@@ -64,12 +64,12 @@ public:
void set_visible (bool v) {
_visible = v;
- Modified ();
+ Changed ();
}
bool has_port (std::string const &) const;
- sigc::signal<void> Modified;
+ sigc::signal<void> Changed;
sigc::signal<void, ARDOUR::Bundle::Change> BundleChanged;
struct BundleRecord {
diff --git a/gtk2_ardour/port_matrix.cc b/gtk2_ardour/port_matrix.cc
index 820920ed14..a35ec2f046 100644
--- a/gtk2_ardour/port_matrix.cc
+++ b/gtk2_ardour/port_matrix.cc
@@ -51,7 +51,7 @@ PortMatrix::PortMatrix (ARDOUR::Session& session, ARDOUR::DataType type)
_min_height_divisor (1),
_show_only_bundles (false),
_inhibit_toggle_show_only_bundles (false),
- _first_setup (true)
+ _realized (false)
{
_body = new PortMatrixBody (this);
@@ -115,7 +115,7 @@ PortMatrix::routes_changed ()
void
PortMatrix::setup ()
{
- if (_first_setup) {
+ if (!_realized) {
select_arrangement ();
}
@@ -123,8 +123,6 @@ PortMatrix::setup ()
setup_scrollbars ();
queue_draw ();
- _first_setup = false;
-
show_all ();
}
@@ -461,3 +459,17 @@ PortMatrix::max_size () const
return m;
}
+
+void
+PortMatrix::on_realize ()
+{
+ Widget::on_realize ();
+ _realized = true;
+}
+
+void
+PortMatrix::on_unrealize ()
+{
+ Widget::on_unrealize ();
+ _realized = false;
+}
diff --git a/gtk2_ardour/port_matrix.h b/gtk2_ardour/port_matrix.h
index 76f6d09a6a..666a55da04 100644
--- a/gtk2_ardour/port_matrix.h
+++ b/gtk2_ardour/port_matrix.h
@@ -160,6 +160,8 @@ private:
void hide_group (boost::weak_ptr<PortGroup>);
void show_group (boost::weak_ptr<PortGroup>);
void toggle_show_only_bundles ();
+ void on_realize ();
+ void on_unrealize ();
/// port type that we are working with
ARDOUR::DataType _type;
@@ -175,7 +177,7 @@ private:
int _min_height_divisor;
bool _show_only_bundles;
bool _inhibit_toggle_show_only_bundles;
- bool _first_setup;
+ bool _realized;
};
#endif