13
0

update Window > Mixer accordingly

This commit is contained in:
Robin Gareus 2015-06-26 23:42:11 +02:00 committed by Paul Davis
parent 9287a9ba8e
commit 1a3df69a17

View File

@ -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 {