update Window > Mixer accordingly
This commit is contained in:
parent
9287a9ba8e
commit
1a3df69a17
@ -379,6 +379,7 @@ ARDOUR_UI::goto_mixer_window ()
|
||||
void
|
||||
ARDOUR_UI::toggle_mixer_window ()
|
||||
{
|
||||
<<<<<<< HEAD
|
||||
/* thse windows are created in ARDOUR_UI::setup_windows()
|
||||
* it should be impossible to get here with any of them being NULL
|
||||
*/
|
||||
@ -400,6 +401,59 @@ ARDOUR_UI::toggle_mixer_window ()
|
||||
show = true;
|
||||
}
|
||||
|
||||
=======
|
||||
if (!editor || !mixer) {
|
||||
/* can this really happen?
|
||||
* keyboard shortcut during session close, maybe?
|
||||
*/
|
||||
#ifndef NDEBUG
|
||||
/* one way to find out: */
|
||||
printf("ARDOUR_UI::toggle_mixer_window: Editor: %p Mixer: %p\n", editor, mixer);
|
||||
PBD::stacktrace (std::cerr, 20);
|
||||
assert (0);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
||||
bool show = false;
|
||||
bool obscuring = false;
|
||||
|
||||
if (mixer->not_visible ()) {
|
||||
show = true;
|
||||
}
|
||||
else if (editor->get_screen() == mixer->get_screen()) {
|
||||
gint ex, ey, ew, eh;
|
||||
gint mx, my, mw, mh;
|
||||
|
||||
editor->get_position (ex, ey);
|
||||
editor->get_size (ew, eh);
|
||||
mixer->get_position (mx, my);
|
||||
mixer->get_size (mw, mh);
|
||||
|
||||
GdkRectangle e;
|
||||
GdkRectangle m;
|
||||
GdkRectangle r;
|
||||
|
||||
e.x = ex;
|
||||
e.y = ey;
|
||||
e.width = ew;
|
||||
e.height = eh;
|
||||
|
||||
m.x = mx;
|
||||
m.y = my;
|
||||
m.width = mw;
|
||||
m.height = mh;
|
||||
|
||||
if (gdk_rectangle_intersect (&e, &m, &r)) {
|
||||
obscuring = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (obscuring && editor->property_has_toplevel_focus()) {
|
||||
show = true;
|
||||
}
|
||||
|
||||
>>>>>>> update Window > Mixer accordingly
|
||||
if (show) {
|
||||
goto_mixer_window ();
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user