a bunch of stuff to make tab/window switching work better, and provide Alt-m to toggle between editor+mixer in a sane way

This commit is contained in:
Paul Davis
2015-11-20 14:19:22 -05:00
parent 64de2b415a
commit a29fd4542e
8 changed files with 130 additions and 17 deletions

View File

@@ -52,8 +52,8 @@ class LIBGTKMM2EXT_API WindowProxy : public PBD::StatefulDestructible, public vi
void present ();
void maybe_show ();
bool visible() const { return _visible; }
bool not_visible() const { return !_visible; }
bool visible() const;
bool fully_visible() const;
const std::string& name() const { return _name; }
const std::string& menu_name() const { return _menu_name; }

View File

@@ -188,11 +188,8 @@ Tabbable::change_visibility ()
}
if (_window && (current_toplevel() == _window)) {
if (_window->is_visible ()) {
_window->hide ();
} else {
_window->present ();
}
/* Use WindowProxy method which will rotate then hide */
toggle();
}
}

View File

@@ -233,6 +233,26 @@ WindowProxy::setup ()
set_pos_and_size ();
}
bool
WindowProxy::visible() const
{
if (vistracker) {
/* update with current state */
_visible = vistracker->partially_visible();
}
return _visible;
}
bool
WindowProxy::fully_visible () const
{
if (!vistracker) {
/* no vistracker .. no window .. cannot be fully visible */
return false;
}
return vistracker->fully_visible();
}
void
WindowProxy::show ()
{