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() {
boolean fieldPanelHasFocus = fieldPanel.hasFocus();
removeAll();
add(buildLeftComponent(), BorderLayout.WEST);
add(buildCenterComponent(), BorderLayout.CENTER);
@ -320,6 +322,10 @@ public class ListingPanel extends JPanel implements FieldMouseListener, FieldLoc
}
revalidate();
repaint();
if (fieldPanelHasFocus) {
fieldPanel.requestFocusInWindow();
}
}
private JComponent buildOverviewComponent() {

View file

@ -291,6 +291,10 @@ public class ActionChooserDialog extends DialogComponentProvider {
SearchListEntry<DockingActionIf> value, int index, boolean isSelected,
boolean 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();
String category = value.category();
Icon icon = getIcon(action, category);

View file

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