GP-4580 fixing stack trace from actions dialog

This commit is contained in:
ghidragon 2024-05-06 17:06:58 -04:00
parent c7fcf1fff0
commit 1fca469ccf
3 changed files with 14 additions and 0 deletions

View file

@ -311,6 +311,8 @@ public class ListingPanel extends JPanel implements FieldMouseListener, FieldLoc
} }
private void buildPanels() { private void buildPanels() {
boolean fieldPanelHasFocus = fieldPanel.hasFocus();
removeAll(); removeAll();
add(buildLeftComponent(), BorderLayout.WEST); add(buildLeftComponent(), BorderLayout.WEST);
add(buildCenterComponent(), BorderLayout.CENTER); add(buildCenterComponent(), BorderLayout.CENTER);
@ -320,6 +322,10 @@ public class ListingPanel extends JPanel implements FieldMouseListener, FieldLoc
} }
revalidate(); revalidate();
repaint(); repaint();
if (fieldPanelHasFocus) {
fieldPanel.requestFocusInWindow();
}
} }
private JComponent buildOverviewComponent() { private JComponent buildOverviewComponent() {

View file

@ -291,6 +291,10 @@ public class ActionChooserDialog extends DialogComponentProvider {
SearchListEntry<DockingActionIf> value, int index, boolean isSelected, SearchListEntry<DockingActionIf> value, int index, boolean isSelected,
boolean hasFocus) { boolean hasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, hasFocus); super.getListCellRendererComponent(list, value, index, isSelected, hasFocus);
if (model.isDisposed()) {
// Some UIs may call the renderer on focus lost after the dialog is closed.
return this;
}
DockingActionIf action = value.value(); DockingActionIf action = value.value();
String category = value.category(); String category = value.category();
Icon icon = getIcon(action, category); Icon icon = getIcon(action, category);

View file

@ -84,6 +84,10 @@ public class ActionsModel extends DefaultSearchListModel<DockingActionIf> {
context = null; context = null;
} }
public boolean isDisposed() {
return context == null;
}
private void populateActions() { private void populateActions() {
clearData(); clearData();
switch (displayLevel) { switch (displayLevel) {