mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-09-28 15:47:43 +08:00
Merge remote-tracking branch
'origin/GP-6954-dragonmacher-window-loc-saving' (Closes #9244)
This commit is contained in:
@@ -16,9 +16,9 @@
|
||||
package docking;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.WindowAdapter;
|
||||
import java.awt.event.WindowEvent;
|
||||
import java.util.*;
|
||||
import java.awt.event.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.*;
|
||||
@@ -513,10 +513,7 @@ class RootNode extends WindowNode {
|
||||
});
|
||||
|
||||
List<ComponentPlaceholder> restoredPlaceholders = new ArrayList<>();
|
||||
Iterator<?> elementIterator = rootNodeElement.getChildren().iterator();
|
||||
while (elementIterator.hasNext()) {
|
||||
Element elem = (Element) elementIterator.next();
|
||||
|
||||
for (Element elem : rootNodeElement.getChildren()) {
|
||||
if (elem.getName().equals("WINDOW_NODE")) {
|
||||
Node node = new DetachedWindowNode(elem, winMgr, this, dropTargetFactory,
|
||||
restoredPlaceholders);
|
||||
@@ -668,22 +665,10 @@ class RootNode extends WindowNode {
|
||||
abstract String getTitle();
|
||||
|
||||
/**
|
||||
* Stores the given bounds if they are not the maximized bounds
|
||||
* Stores the given bounds. These should not be the maximized bounds.
|
||||
* @param bounds the bounds
|
||||
*/
|
||||
public void setLastBounds(Rectangle bounds) {
|
||||
Rectangle screenBounds = WindowUtilities.getScreenBounds(getWindow());
|
||||
if (screenBounds == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
Rectangle boundsSize = new Rectangle(bounds.getSize());
|
||||
Rectangle screenSize = new Rectangle(screenBounds.getSize());
|
||||
if (boundsSize.contains(screenSize)) {
|
||||
// This can happen when the bounds being set are the full screen bounds. We only
|
||||
// wish to save the non-maximized bounds.
|
||||
return;
|
||||
}
|
||||
this.lastBounds = bounds;
|
||||
}
|
||||
|
||||
@@ -727,11 +712,6 @@ class RootNode extends WindowNode {
|
||||
winMgr.setActive(wrappedDialog, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void windowStateChanged(WindowEvent e) {
|
||||
// this is called when transitioning in and out of the full-screen state
|
||||
setLastBounds(wrappedDialog.getBounds());
|
||||
}
|
||||
};
|
||||
|
||||
dialog.addWindowListener(windowListener);
|
||||
@@ -837,10 +817,25 @@ class RootNode extends WindowNode {
|
||||
@Override
|
||||
public void windowStateChanged(WindowEvent e) {
|
||||
// this is called when transitioning in and out of the full-screen state
|
||||
setLastBounds(wrappedFrame.getBounds());
|
||||
int newState = e.getNewState();
|
||||
if (newState != Frame.MAXIMIZED_BOTH) {
|
||||
// don't save the bounds when in full-screen mode; these bounds are later
|
||||
// used to restore the non-full-screen state
|
||||
setLastBounds(wrappedFrame.getBounds());
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
wrappedFrame.addComponentListener(new ComponentAdapter() {
|
||||
@Override
|
||||
public void componentMoved(ComponentEvent e) {
|
||||
int state = wrappedFrame.getExtendedState();
|
||||
if (state != Frame.MAXIMIZED_BOTH) {
|
||||
setLastBounds(wrappedFrame.getBounds());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
wrappedFrame.addWindowListener(windowListener);
|
||||
wrappedFrame.addWindowStateListener(windowListener);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user