From 6590a76ff466a3adb517b7002b4c5e7b90639fa1 Mon Sep 17 00:00:00 2001 From: SiboVG Date: Thu, 16 Jun 2022 00:25:48 +0200 Subject: [PATCH] Fix opacity change not undo-ing properly --- .../net/sf/openrocket/appearance/AppearanceBuilder.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/src/net/sf/openrocket/appearance/AppearanceBuilder.java b/core/src/net/sf/openrocket/appearance/AppearanceBuilder.java index c77fea10c..3763eae0e 100644 --- a/core/src/net/sf/openrocket/appearance/AppearanceBuilder.java +++ b/core/src/net/sf/openrocket/appearance/AppearanceBuilder.java @@ -216,10 +216,10 @@ public class AppearanceBuilder extends AbstractChangeSource { // Clamp opacity between 0 and 1 opacity = Math.max(0, Math.min(1, opacity)); - this.paint.setAlpha((int) (opacity * 255)); - if (!bypassAppearanceChangeEvent) { - fireChangeEvent(); - } + // Instead of simply setting the alpha, we need to create a new color with the new alpha value, otherwise undoing + // the setOpacity will not work correctly. (don't ask me why) + Color c = new Color(paint.getRed(), paint.getGreen(), paint.getBlue(), (int) (opacity * 255)); + setPaint(c); } /**