diff --git a/latexdraw-core/net.sf.latexdraw/release_note.txt b/latexdraw-core/net.sf.latexdraw/release_note.txt
index 3816faa0d..4b669f8d4 100644
--- a/latexdraw-core/net.sf.latexdraw/release_note.txt
+++ b/latexdraw-core/net.sf.latexdraw/release_note.txt
@@ -4,6 +4,8 @@ Version 3.3.4
Bugs fixed:
- Scaling shapes does not work outside the page
https://bugs.launchpad.net/latexdraw/+bug/1583116
+- Borders of some rotated shapes not correctly updated when located outside the page
+ https://bugs.launchpad.net/latexdraw/+bug/1584487
- Copy/paste a plotted shape does not work as expected
https://bugs.launchpad.net/latexdraw/+bug/1580483
- Boundaries of a group of shapes not correctly computed when moved outside the page
diff --git a/latexdraw-core/net.sf.latexdraw/src/main/net/sf/latexdraw/glib/views/Java2D/impl/LAxesView.java b/latexdraw-core/net.sf.latexdraw/src/main/net/sf/latexdraw/glib/views/Java2D/impl/LAxesView.java
index 2f808796f..7f166d48e 100644
--- a/latexdraw-core/net.sf.latexdraw/src/main/net/sf/latexdraw/glib/views/Java2D/impl/LAxesView.java
+++ b/latexdraw-core/net.sf.latexdraw/src/main/net/sf/latexdraw/glib/views/Java2D/impl/LAxesView.java
@@ -1,30 +1,26 @@
package net.sf.latexdraw.glib.views.Java2D.impl;
-import static java.lang.Math.cos;
-import static java.lang.Math.sin;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.Graphics2D;
-import java.awt.Rectangle;
-import java.awt.font.FontRenderContext;
-import java.awt.geom.AffineTransform;
-import java.awt.geom.Path2D;
-import java.awt.geom.Rectangle2D;
-import java.util.ArrayList;
-
import net.sf.latexdraw.glib.models.ShapeFactory;
import net.sf.latexdraw.glib.models.interfaces.prop.IAxesProp.AxesStyle;
import net.sf.latexdraw.glib.models.interfaces.prop.IAxesProp.PlottingStyle;
import net.sf.latexdraw.glib.models.interfaces.prop.IAxesProp.TicksStyle;
import net.sf.latexdraw.glib.models.interfaces.shape.IArrow;
+import net.sf.latexdraw.glib.models.interfaces.shape.IArrow.ArrowStyle;
import net.sf.latexdraw.glib.models.interfaces.shape.IAxes;
import net.sf.latexdraw.glib.models.interfaces.shape.IPoint;
import net.sf.latexdraw.glib.models.interfaces.shape.IShape;
-import net.sf.latexdraw.glib.models.interfaces.shape.IArrow.ArrowStyle;
import net.sf.latexdraw.util.LNumber;
+import java.awt.*;
+import java.awt.font.FontRenderContext;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Path2D;
+import java.awt.geom.Rectangle2D;
+import java.util.ArrayList;
+
+import static java.lang.Math.cos;
+import static java.lang.Math.sin;
+
/**
* Defines a view of the IAxes model.
*
@@ -453,6 +449,7 @@ public void updateBorder() {
final IPoint tl = ShapeFactory.createPoint();
final IPoint br = ShapeFactory.createPoint();
getRotatedRectangle(bound.getMinX(), bound.getMinY(), bound.getWidth(), bound.getHeight(), angle, shape.getGravityCentre(), tl, br);
+ System.out.println(tl + " " + br);
border.setFrameFromDiagonal(tl.getX(), tl.getY(), br.getX(), br.getY());
}
}
diff --git a/latexdraw-core/net.sf.latexdraw/src/main/net/sf/latexdraw/glib/views/Java2D/impl/LBezierCurveView.java b/latexdraw-core/net.sf.latexdraw/src/main/net/sf/latexdraw/glib/views/Java2D/impl/LBezierCurveView.java
index 43a1e5c3d..7d3922ee3 100644
--- a/latexdraw-core/net.sf.latexdraw/src/main/net/sf/latexdraw/glib/views/Java2D/impl/LBezierCurveView.java
+++ b/latexdraw-core/net.sf.latexdraw/src/main/net/sf/latexdraw/glib/views/Java2D/impl/LBezierCurveView.java
@@ -1,18 +1,17 @@
package net.sf.latexdraw.glib.views.Java2D.impl;
-import java.awt.BasicStroke;
-import java.awt.Graphics2D;
-import java.awt.geom.Ellipse2D;
-import java.awt.geom.Line2D;
-import java.util.ArrayList;
-import java.util.List;
-
import net.sf.latexdraw.glib.models.interfaces.shape.IArrow;
import net.sf.latexdraw.glib.models.interfaces.shape.IBezierCurve;
import net.sf.latexdraw.glib.models.interfaces.shape.ILine;
import net.sf.latexdraw.glib.models.interfaces.shape.IPoint;
import net.sf.latexdraw.glib.views.Java2D.interfaces.IViewBezierCurve;
+import java.awt.*;
+import java.awt.geom.Ellipse2D;
+import java.awt.geom.Line2D;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* Defines a view of the model IBeziershape.
*
@@ -167,8 +166,8 @@ public void updateBorder() {
final List ctrlPts2 = shape.getSecondCtrlPts();
double minX = Double.MAX_VALUE;
double minY = Double.MAX_VALUE;
- double maxX = Double.MIN_VALUE;
- double maxY = Double.MIN_VALUE;
+ double maxX = -Double.MAX_VALUE;
+ double maxY = -Double.MAX_VALUE;
IPoint pt;
for(final IPoint aCtrlPts1 : ctrlPts1) {
diff --git a/latexdraw-core/net.sf.latexdraw/src/main/net/sf/latexdraw/glib/views/Java2D/impl/LShapeView.java b/latexdraw-core/net.sf.latexdraw/src/main/net/sf/latexdraw/glib/views/Java2D/impl/LShapeView.java
index c20ebcacb..c938b13a6 100644
--- a/latexdraw-core/net.sf.latexdraw/src/main/net/sf/latexdraw/glib/views/Java2D/impl/LShapeView.java
+++ b/latexdraw-core/net.sf.latexdraw/src/main/net/sf/latexdraw/glib/views/Java2D/impl/LShapeView.java
@@ -1,21 +1,5 @@
package net.sf.latexdraw.glib.views.Java2D.impl;
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.GradientPaint;
-import java.awt.Graphics2D;
-import java.awt.Rectangle;
-import java.awt.Shape;
-import java.awt.Stroke;
-import java.awt.geom.AffineTransform;
-import java.awt.geom.GeneralPath;
-import java.awt.geom.Line2D;
-import java.awt.geom.Path2D;
-import java.awt.geom.Point2D;
-import java.awt.geom.Rectangle2D;
-import java.util.ArrayList;
-import java.util.List;
-
import net.sf.latexdraw.glib.models.GLibUtilities;
import net.sf.latexdraw.glib.models.ShapeFactory;
import net.sf.latexdraw.glib.models.interfaces.shape.ILine;
@@ -27,9 +11,13 @@
import net.sf.latexdraw.glib.views.Java2D.interfaces.IViewArrow;
import net.sf.latexdraw.glib.views.Java2D.interfaces.IViewShape;
import net.sf.latexdraw.util.LNumber;
-
import org.malai.picking.Picker;
+import java.awt.*;
+import java.awt.geom.*;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* Defines a view of the LShape model.
*
@@ -716,7 +704,7 @@ protected static void getRotatedRectangle(final double tlx, final double tly, fi
pts[2] = ShapeFactory.createPoint(tlx+width, tly+height).rotatePoint(gravityCentre, angle);
pts[3] = ShapeFactory.createPoint(tlx, tly+height).rotatePoint(gravityCentre, angle);
tl.setPoint(Double.MAX_VALUE, Double.MAX_VALUE);
- br.setPoint(Double.MIN_VALUE, Double.MIN_VALUE);
+ br.setPoint(-Double.MAX_VALUE, -Double.MAX_VALUE);
// Defining the border of the rotated rectangle.
for(final IPoint pt : pts) {