diff --git a/diylc/diylc-library/src/org/diylc/components/shapes/Ellipse.java b/diylc/diylc-library/src/org/diylc/components/shapes/Ellipse.java index 080f8595..1642ee89 100644 --- a/diylc/diylc-library/src/org/diylc/components/shapes/Ellipse.java +++ b/diylc/diylc-library/src/org/diylc/components/shapes/Ellipse.java @@ -45,16 +45,18 @@ public class Ellipse extends AbstractShape { public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, Project project, IDrawingObserver drawingObserver) { g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke((int) borderThickness.convertToPixels())); - - if (componentState != ComponentState.DRAGGING) { - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha / MAX_ALPHA)); - } - g2d.setColor(color); - g2d.fillOval(firstPoint.x, firstPoint.y, secondPoint.x - firstPoint.x, secondPoint.y - firstPoint.y); - g2d.setComposite(oldComposite); + + float alpha = this.alpha; + if (componentState == ComponentState.DRAGGING) + alpha = 0; + Composite oldComposite = g2d.getComposite(); + if (alpha < MAX_ALPHA) { + g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha / MAX_ALPHA)); } + g2d.setColor(color); + g2d.fillOval(firstPoint.x, firstPoint.y, secondPoint.x - firstPoint.x, secondPoint.y - firstPoint.y); + g2d.setComposite(oldComposite); + // Do not track any changes that follow because the whole oval has been // tracked so far. drawingObserver.stopTracking(); diff --git a/diylc/diylc-library/src/org/diylc/components/shapes/Rectangle.java b/diylc/diylc-library/src/org/diylc/components/shapes/Rectangle.java index 512ed4b6..dbbbc4e3 100644 --- a/diylc/diylc-library/src/org/diylc/components/shapes/Rectangle.java +++ b/diylc/diylc-library/src/org/diylc/components/shapes/Rectangle.java @@ -52,16 +52,20 @@ public class Rectangle extends AbstractShape { IDrawingObserver drawingObserver) { g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke((int) borderThickness.convertToPixels())); int radius = (int) edgeRadius.convertToPixels(); - if (componentState != ComponentState.DRAGGING) { - Composite oldComposite = g2d.getComposite(); - if (alpha < MAX_ALPHA) { - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha / MAX_ALPHA)); - } - g2d.setColor(color); - g2d.fillRoundRect(firstPoint.x, firstPoint.y, secondPoint.x - firstPoint.x, secondPoint.y - firstPoint.y, radius, - radius); - g2d.setComposite(oldComposite); + + float alpha = this.alpha; + if (componentState == ComponentState.DRAGGING) + alpha = 0; + + Composite oldComposite = g2d.getComposite(); + if (alpha < MAX_ALPHA) { + g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha / MAX_ALPHA)); } + g2d.setColor(color); + g2d.fillRoundRect(firstPoint.x, firstPoint.y, secondPoint.x - firstPoint.x, secondPoint.y - firstPoint.y, radius, + radius); + g2d.setComposite(oldComposite); + // Do not track any changes that follow because the whole rect has been // tracked so far. drawingObserver.stopTracking();