}
}
+ /**
+ * gets the topmost alignment window and sets av and ap accordingly
+ * @return false if no alignment window was found
+ */
boolean getFocusedViewport()
{
- JInternalFrame frame = Desktop.desktop.getAllFrames()[1];
-
- if (frame != null && frame instanceof AlignFrame)
- {
- av = ((AlignFrame) frame).viewport;
- ap = ((AlignFrame) frame).alignPanel;
- return true;
+ // now checks further down the window stack to fix bug https://mantis.lifesci.dundee.ac.uk/view.php?id=36008
+ JInternalFrame[] frames = Desktop.desktop.getAllFrames();
+ for (int f=0;f<frames.length; f++) {
+ JInternalFrame frame = frames[f];
+ if (frame != null && frame instanceof AlignFrame)
+ {
+ av = ((AlignFrame) frame).viewport;
+ ap = ((AlignFrame) frame).alignPanel;
+ return true;
+ }
}
return false;
}