diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java index ebaa54e7cb..df8d83556f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java @@ -429,15 +429,7 @@ public class ConfigPanel extends PluginPanel colorPickerBtn.setBackground(c); colorPickerBtn.setText(ColorUtil.toHexColor(c).toUpperCase()); }); - - colorPicker.addWindowListener(new WindowAdapter() - { - @Override - public void windowClosing(WindowEvent e) - { - changeConfiguration(listItem, config, colorPicker, cd, cid); - } - }); + colorPicker.setOnClose(c -> changeConfiguration(listItem, config, colorPicker, cd, cid)); colorPicker.setVisible(true); } }); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ui/ScreenMarkerPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ui/ScreenMarkerPanel.java index 23b6cad174..6937543df2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ui/ScreenMarkerPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/screenmarkers/ui/ScreenMarkerPanel.java @@ -553,15 +553,7 @@ class ScreenMarkerPanel extends JPanel marker.getMarker().setFill(c); updateFill(); }); - - colorPicker.addWindowListener(new WindowAdapter() - { - @Override - public void windowClosing(WindowEvent e) - { - plugin.updateConfig(); - } - }); + colorPicker.setOnClose(c -> plugin.updateConfig()); colorPicker.setVisible(true); } @@ -575,15 +567,7 @@ class ScreenMarkerPanel extends JPanel marker.getMarker().setColor(c); updateBorder(); }); - - colorPicker.addWindowListener(new WindowAdapter() - { - @Override - public void windowClosing(WindowEvent e) - { - plugin.updateConfig(); - } - }); + colorPicker.setOnClose(c -> plugin.updateConfig()); colorPicker.setVisible(true); } } diff --git a/runelite-client/src/main/java/net/runelite/client/ui/components/colorpicker/RuneliteColorPicker.java b/runelite-client/src/main/java/net/runelite/client/ui/components/colorpicker/RuneliteColorPicker.java index 81d6780d70..1774725c43 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/components/colorpicker/RuneliteColorPicker.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/components/colorpicker/RuneliteColorPicker.java @@ -39,6 +39,8 @@ import java.awt.event.FocusAdapter; import java.awt.event.FocusEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; import java.util.function.Consumer; import javax.swing.JDialog; import javax.swing.JFrame; @@ -84,6 +86,9 @@ public class RuneliteColorPicker extends JDialog @Setter private Consumer onColorChange; + @Setter + private Consumer onClose; + public RuneliteColorPicker(Window parent, Color previousColor, String title, boolean alphaHidden) { super(parent, "RuneLite Color Picker - " + title, ModalityType.MODELESS); @@ -265,6 +270,18 @@ public class RuneliteColorPicker extends JDialog updatePanels(); updateText(); + + addWindowListener(new WindowAdapter() + { + @Override + public void windowClosing(WindowEvent e) + { + if (onClose != null) + { + onClose.accept(selectedColor); + } + } + }); } private void updatePanels()