@Override
public boolean mouseMove(Component component, int x, int y) {
boolean consumed = super.mouseMove(component, x, y);
if (Mouse.getCapturer() == component) {
Window window = (Window)getComponent();
Display display = window.getDisplay();
Point location = window.mapPointToAncestor(display, x, y);
// Pretend that the mouse can't move off screen (off the display)
location = new Point(Math.min(Math.max(location.x, 0), display.getWidth() - 1),
Math.min(Math.max(location.y, 0), display.getHeight() - 1));
if (dragOffset != null) {
// Move the window
window.setLocation(location.x - dragOffset.x, location.y - dragOffset.y);
} else {
if (resizeOffset != null) {
// Resize the window
int preferredWidth = -1;
int preferredHeight = -1;
if (window.isPreferredWidthSet()) {
preferredWidth = Math.max(location.x - window.getX() + resizeOffset.x,
titleBarFlowPane.getPreferredWidth(-1) + 2);
}
if (window.isPreferredHeightSet()) {
preferredHeight = Math.max(location.y - window.getY() + resizeOffset.y,
titleBarFlowPane.getHeight() + resizeHandle.getHeight() + 7);
}
window.setPreferredSize(preferredWidth, preferredHeight);
}
}
} else {
Cursor cursor = null;
if (x > resizeHandle.getX()