From 684c924cec329d2864145f166039772f1bc43d41 Mon Sep 17 00:00:00 2001 From: gered Date: Sat, 16 Jan 2016 12:30:22 -0500 Subject: [PATCH] fix BorderlessFrame window resizing to respect isResizable --- .../org/fenix/utils/gui/BorderlessFrame.java | 60 ++++++++++--------- 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/src/main/java/org/fenix/utils/gui/BorderlessFrame.java b/src/main/java/org/fenix/utils/gui/BorderlessFrame.java index ac07899..e555af6 100644 --- a/src/main/java/org/fenix/utils/gui/BorderlessFrame.java +++ b/src/main/java/org/fenix/utils/gui/BorderlessFrame.java @@ -49,7 +49,7 @@ public class BorderlessFrame extends JFrame implements MouseListener, MouseMotio } public void mousePressed(MouseEvent event) { - if(this.getCursor().getType() != 0) { + if(this.getCursor().getType() != Cursor.DEFAULT_CURSOR && this.isResizable()) { this.doResize = true; this.startFrameX = this.getX(); this.startFrameY = this.getY(); @@ -79,31 +79,31 @@ public class BorderlessFrame extends JFrame implements MouseListener, MouseMotio int height = this.getHeight(); int frameX = this.startFrameX; int frameY = this.startFrameY; - if(type == 5) { + if(type == Cursor.SE_RESIZE_CURSOR) { width = event.getXOnScreen() - this.startFrameX; height = event.getYOnScreen() - this.startFrameY; - } else if(type == 11) { + } else if(type == Cursor.E_RESIZE_CURSOR) { width = event.getXOnScreen() - this.startFrameX; - } else if(type == 7) { + } else if(type == Cursor.NE_RESIZE_CURSOR) { width = event.getXOnScreen() - this.startFrameX; height = this.startFrameY + this.startHeight - event.getYOnScreen(); frameY = event.getYOnScreen(); - } else if(type == 8) { + } else if(type == Cursor.N_RESIZE_CURSOR) { height = this.startFrameY + this.startHeight - event.getYOnScreen(); frameY = event.getYOnScreen(); - } else if(type == 6) { + } else if(type == Cursor.NW_RESIZE_CURSOR) { width = this.startFrameX + this.startWidth - event.getXOnScreen(); height = this.startFrameY + this.startHeight - event.getYOnScreen(); frameY = event.getYOnScreen(); frameX = event.getXOnScreen(); - } else if(type == 10) { + } else if(type == Cursor.W_RESIZE_CURSOR) { width = this.startFrameX + this.startWidth - event.getXOnScreen(); frameX = event.getXOnScreen(); - } else if(type == 4) { + } else if(type == Cursor.SW_RESIZE_CURSOR) { width = this.startFrameX + this.startWidth - event.getXOnScreen(); height = event.getYOnScreen() - this.startFrameY; frameX = event.getXOnScreen(); - } else if(type == 9) { + } else if(type == Cursor.S_RESIZE_CURSOR) { height = event.getYOnScreen() - this.startFrameY; } @@ -130,28 +130,32 @@ public class BorderlessFrame extends JFrame implements MouseListener, MouseMotio int lowSnapY = this.getY() + this.snapSize; int mouseX = event.getXOnScreen(); int mouseY = event.getYOnScreen(); - if(mouseX > farSnapX) { - if(mouseY > farSnapY) { - this.changeCursor(5); - } else if(mouseY < lowSnapY) { - this.changeCursor(7); + if (this.isResizable()) { + if (mouseX > farSnapX) { + if (mouseY > farSnapY) { + this.changeCursor(Cursor.SE_RESIZE_CURSOR); + } else if (mouseY < lowSnapY) { + this.changeCursor(Cursor.NE_RESIZE_CURSOR); + } else { + this.changeCursor(Cursor.E_RESIZE_CURSOR); + } + } else if (mouseX < lowSnapX) { + if (mouseY < lowSnapY) { + this.changeCursor(Cursor.NW_RESIZE_CURSOR); + } else if (mouseY > farSnapY) { + this.changeCursor(Cursor.SW_RESIZE_CURSOR); + } else { + this.changeCursor(Cursor.W_RESIZE_CURSOR); + } + } else if (mouseY > farSnapY) { + this.changeCursor(Cursor.S_RESIZE_CURSOR); + } else if (mouseY < lowSnapY) { + this.changeCursor(Cursor.N_RESIZE_CURSOR); } else { - this.changeCursor(11); + this.changeCursor(Cursor.DEFAULT_CURSOR); } - } else if(mouseX < lowSnapX) { - if(mouseY < lowSnapY) { - this.changeCursor(6); - } else if(mouseY > farSnapY) { - this.changeCursor(4); - } else { - this.changeCursor(10); - } - } else if(mouseY > farSnapY) { - this.changeCursor(9); - } else if(mouseY < lowSnapY) { - this.changeCursor(8); } else { - this.changeCursor(0); + this.changeCursor(Cursor.DEFAULT_CURSOR); } }