Fix port matrix menu checkbox when the window is closed. Make the port matrix origin the bottom left when tabs are on left and bottom. Don't shrink the port matrix when auto-resizing it.
git-svn-id: svn://localhost/ardour2/branches/3.0@7673 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
211b57b303
commit
2ba936f0b3
@ -751,14 +751,22 @@ ARDOUR_UI::save_ardour_state ()
|
||||
void
|
||||
ARDOUR_UI::toggle_global_port_matrix (ARDOUR::DataType t)
|
||||
{
|
||||
std::string const action = string_compose ("toggle-%1-connection-manager", t.to_string ());
|
||||
|
||||
if (_global_port_matrix[t]->get() == 0) {
|
||||
_global_port_matrix[t]->set (new GlobalPortMatrixWindow (_session, t));
|
||||
_global_port_matrix[t]->get()->signal_unmap().connect(sigc::bind (sigc::ptr_fun (&ActionManager::uncheck_toggleaction), string_compose (X_("<Actions>/Common/%1"), action)));
|
||||
}
|
||||
|
||||
if (_global_port_matrix[t]->get()->is_visible ()) {
|
||||
_global_port_matrix[t]->get()->hide ();
|
||||
} else {
|
||||
_global_port_matrix[t]->get()->present ();
|
||||
RefPtr<Action> act = ActionManager::get_action (X_("Common"), action.c_str());
|
||||
if (act) {
|
||||
RefPtr<ToggleAction> tact = RefPtr<ToggleAction>::cast_dynamic (act);
|
||||
|
||||
if (tact->get_active()) {
|
||||
_global_port_matrix[t]->get()->present ();
|
||||
} else {
|
||||
_global_port_matrix[t]->get()->hide ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -787,7 +787,16 @@ PortMatrix::body_dimensions_changed ()
|
||||
_vspacer.hide ();
|
||||
}
|
||||
|
||||
pair<uint32_t, uint32_t> const m = max_size ();
|
||||
int curr_width;
|
||||
int curr_height;
|
||||
_parent->get_size (curr_width, curr_height);
|
||||
|
||||
pair<uint32_t, uint32_t> m = max_size ();
|
||||
|
||||
/* Don't shrink the window */
|
||||
m.first = max (int (m.first), curr_width);
|
||||
m.second = max (int (m.second), curr_height);
|
||||
|
||||
resize_window_to_proportion_of_monitor (_parent, m.first, m.second);
|
||||
}
|
||||
|
||||
|
@ -223,21 +223,21 @@ PortMatrixBody::compute_rectangles ()
|
||||
} else if (_matrix->arrangement() == PortMatrix::LEFT_TO_BOTTOM) {
|
||||
|
||||
col_rect.set_height (min (_alloc_height, col.second));
|
||||
|
||||
row_rect.set_x (0);
|
||||
row_rect.set_y (0);
|
||||
row_rect.set_width (min (_alloc_width, row.first));
|
||||
row_rect.set_height (std::min (_alloc_height - col_rect.get_height(), row.second));
|
||||
|
||||
row_rect.set_x (0);
|
||||
row_rect.set_y (_alloc_height - row_rect.get_height() - col_rect.get_height());
|
||||
row_rect.set_width (min (_alloc_width, row.first));
|
||||
|
||||
grid_rect.set_x (row_rect.get_width());
|
||||
grid_rect.set_y (0);
|
||||
grid_rect.set_y (_alloc_height - row_rect.get_height() - col_rect.get_height());
|
||||
grid_rect.set_width (std::min (_alloc_width - row_rect.get_width(), grid.first));
|
||||
grid_rect.set_height (row_rect.get_height ());
|
||||
|
||||
col_rect.set_width (grid_rect.get_width () + col_overhang);
|
||||
col_rect.set_x (row_rect.get_width() + grid_rect.get_width() - col_rect.get_width());
|
||||
_column_labels_border_x = col_rect.get_x () >= 0 ? col_rect.get_x () : 0;
|
||||
col_rect.set_y (row_rect.get_height());
|
||||
col_rect.set_y (_alloc_height - col_rect.get_height());
|
||||
}
|
||||
|
||||
_column_labels_height = col_rect.get_height ();
|
||||
|
@ -268,8 +268,10 @@ ActionManager::set_sensitive (vector<RefPtr<Action> >& actions, bool state)
|
||||
}
|
||||
|
||||
void
|
||||
ActionManager::uncheck_toggleaction (const char * name)
|
||||
ActionManager::uncheck_toggleaction (string n)
|
||||
{
|
||||
char const * name = n.c_str ();
|
||||
|
||||
const char *last_slash = strrchr (name, '/');
|
||||
|
||||
if (last_slash == 0) {
|
||||
|
@ -77,7 +77,7 @@ namespace ActionManager {
|
||||
std::vector<std::string>& paths,
|
||||
std::vector<Gtk::AccelKey>& bindings);
|
||||
|
||||
extern void uncheck_toggleaction (const char * actionname);
|
||||
extern void uncheck_toggleaction (std::string);
|
||||
};
|
||||
|
||||
#endif /* __libgtkmm2ext_actions_h__ */
|
||||
|
Loading…
Reference in New Issue
Block a user