From: Carl Hetherington Date: Sat, 18 Jul 2009 03:17:47 +0000 (+0000) Subject: Better fix for non-rearrangement after open for the port matrix. X-Git-Tag: 3.0-alpha5~3213 X-Git-Url: https://main.carlh.net/gitweb/?a=commitdiff_plain;h=2e7eeef44868d84f51e0d4b54d31e39d7cf26918;p=ardour.git 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 --- 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 b) _bundles.push_back (r); - Modified (); + Changed (); } /** Add a bundle to a group. @@ -84,7 +84,7 @@ PortGroup::add_bundle (boost::shared_ptr b, Gdk::Color c) _bundles.push_back (r); - Modified (); + Changed (); } void @@ -104,7 +104,7 @@ PortGroup::remove_bundle (boost::shared_ptr 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 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 Modified; + sigc::signal Changed; sigc::signal 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); void show_group (boost::weak_ptr); 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