diff --git a/pom.xml b/pom.xml
index ff50d75..7dd0da6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
de.extio
game-engine
- 1.0.4
+ 1.0.5
25
diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/control/components/CustomMultiLineTextArea.java b/src/main/java/de/extio/game_engine/renderer/g2d/control/components/CustomMultiLineTextArea.java
index 1d8f67c..6b63995 100644
--- a/src/main/java/de/extio/game_engine/renderer/g2d/control/components/CustomMultiLineTextArea.java
+++ b/src/main/java/de/extio/game_engine/renderer/g2d/control/components/CustomMultiLineTextArea.java
@@ -24,6 +24,7 @@ import java.util.function.Consumer;
import de.extio.game_engine.renderer.ThemeManager;
import de.extio.game_engine.renderer.g2d.bo.rendering.G2DDrawFont;
import de.extio.game_engine.renderer.model.Theme;
+import de.extio.game_engine.spatial2.model.CoordI2;
import de.extio.game_engine.spatial2.model.ImmutableCoordI2;
@SuppressWarnings("serial")
@@ -72,6 +73,8 @@ public class CustomMultiLineTextArea extends Component {
private int scrollbarThumbHeight = 0;
private boolean scrollbarDragging = false;
+
+ private CoordI2 lastMousePosition;
private int scrollbarDragStartY = 0;
@@ -150,6 +153,10 @@ public class CustomMultiLineTextArea extends Component {
public void setDirty(final boolean dirty) {
this.dirty = dirty;
}
+
+ public CoordI2 getLastMousePosition() {
+ return this.lastMousePosition;
+ }
public CustomMultiLineTextArea(final ThemeManager themeManager, final Consumer onTextChanged) {
this.themeManager = themeManager;
@@ -295,9 +302,16 @@ public class CustomMultiLineTextArea extends Component {
});
this.addMouseListener(new MouseAdapter() {
+
+ @Override
+ public void mouseEntered(final MouseEvent e) {
+ CustomMultiLineTextArea.this.lastMousePosition = ImmutableCoordI2.create(e.getX(), e.getY());
+ e.consume();
+ }
@Override
public void mousePressed(final MouseEvent e) {
+ CustomMultiLineTextArea.this.lastMousePosition = ImmutableCoordI2.create(e.getX(), e.getY());
CustomMultiLineTextArea.this.requestFocus();
if (!CustomMultiLineTextArea.this.enabled) {
e.consume();
@@ -337,17 +351,25 @@ public class CustomMultiLineTextArea extends Component {
CustomMultiLineTextArea.this.scrollbarDragging = false;
e.consume();
}
+
+ @Override
+ public void mouseExited(final MouseEvent e) {
+ CustomMultiLineTextArea.this.lastMousePosition = null;
+ e.consume();
+ }
});
this.addMouseMotionListener(new MouseMotionListener() {
@Override
public void mouseMoved(final MouseEvent e) {
+ CustomMultiLineTextArea.this.lastMousePosition = ImmutableCoordI2.create(e.getX(), e.getY());
e.consume();
}
@Override
public void mouseDragged(final MouseEvent e) {
+ CustomMultiLineTextArea.this.lastMousePosition = ImmutableCoordI2.create(e.getX(), e.getY());
if (!CustomMultiLineTextArea.this.enabled) {
e.consume();
return;
diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/control/components/CustomSingleLineTextField.java b/src/main/java/de/extio/game_engine/renderer/g2d/control/components/CustomSingleLineTextField.java
index 7db31f5..39f7093 100644
--- a/src/main/java/de/extio/game_engine/renderer/g2d/control/components/CustomSingleLineTextField.java
+++ b/src/main/java/de/extio/game_engine/renderer/g2d/control/components/CustomSingleLineTextField.java
@@ -20,6 +20,7 @@ import java.util.function.Consumer;
import de.extio.game_engine.renderer.ThemeManager;
import de.extio.game_engine.renderer.g2d.bo.rendering.G2DDrawFont;
import de.extio.game_engine.renderer.model.Theme;
+import de.extio.game_engine.spatial2.model.CoordI2;
import de.extio.game_engine.spatial2.model.ImmutableCoordI2;
@SuppressWarnings("serial")
@@ -55,6 +56,8 @@ public class CustomSingleLineTextField extends Component {
private boolean caretVisible = true;
+ private CoordI2 lastMousePosition;
+
private int cachedRawFontHeight = 0;
private final ThemeManager themeManager;
@@ -115,6 +118,10 @@ public class CustomSingleLineTextField extends Component {
this.dirty = dirty;
}
+ public CoordI2 getLastMousePosition() {
+ return this.lastMousePosition;
+ }
+
public CustomSingleLineTextField(final ThemeManager themeManager, final Consumer onTextChanged, final Runnable onSubmit) {
this.themeManager = themeManager;
this.onTextChanged = onTextChanged;
@@ -255,8 +262,15 @@ public class CustomSingleLineTextField extends Component {
this.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseEntered(final MouseEvent e) {
+ CustomSingleLineTextField.this.lastMousePosition = ImmutableCoordI2.create(e.getX(), e.getY());
+ e.consume();
+ }
+
@Override
public void mousePressed(final MouseEvent e) {
+ CustomSingleLineTextField.this.lastMousePosition = ImmutableCoordI2.create(e.getX(), e.getY());
CustomSingleLineTextField.this.requestFocus();
if (!CustomSingleLineTextField.this.enabled) {
e.consume();
@@ -285,17 +299,25 @@ public class CustomSingleLineTextField extends Component {
public void mouseReleased(final MouseEvent e) {
e.consume();
}
+
+ @Override
+ public void mouseExited(final MouseEvent e) {
+ CustomSingleLineTextField.this.lastMousePosition = null;
+ e.consume();
+ }
});
this.addMouseMotionListener(new MouseMotionListener() {
@Override
public void mouseMoved(final MouseEvent e) {
+ CustomSingleLineTextField.this.lastMousePosition = ImmutableCoordI2.create(e.getX(), e.getY());
e.consume();
}
@Override
public void mouseDragged(final MouseEvent e) {
+ CustomSingleLineTextField.this.lastMousePosition = ImmutableCoordI2.create(e.getX(), e.getY());
if (!CustomSingleLineTextField.this.enabled) {
e.consume();
return;
diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/control/impl/G2DMultiLineTextAreaControlImpl.java b/src/main/java/de/extio/game_engine/renderer/g2d/control/impl/G2DMultiLineTextAreaControlImpl.java
index 2268b1a..aeeca3f 100644
--- a/src/main/java/de/extio/game_engine/renderer/g2d/control/impl/G2DMultiLineTextAreaControlImpl.java
+++ b/src/main/java/de/extio/game_engine/renderer/g2d/control/impl/G2DMultiLineTextAreaControlImpl.java
@@ -123,6 +123,7 @@ public class G2DMultiLineTextAreaControlImpl extends G2DBaseControlImpl implemen
this.updateAllComponentZOrder();
}
+ this.tooltipMousePosition = this.textArea.getLastMousePosition();
this.textArea.paint(this.bufferedImageGraphics);
super.render();
diff --git a/src/main/java/de/extio/game_engine/renderer/g2d/control/impl/G2DSingleLineTextfieldControlImpl.java b/src/main/java/de/extio/game_engine/renderer/g2d/control/impl/G2DSingleLineTextfieldControlImpl.java
index 0a324ea..62e4e32 100644
--- a/src/main/java/de/extio/game_engine/renderer/g2d/control/impl/G2DSingleLineTextfieldControlImpl.java
+++ b/src/main/java/de/extio/game_engine/renderer/g2d/control/impl/G2DSingleLineTextfieldControlImpl.java
@@ -118,6 +118,7 @@ public class G2DSingleLineTextfieldControlImpl extends G2DBaseControlImpl implem
this.updateAllComponentZOrder();
}
+ this.tooltipMousePosition = this.textField.getLastMousePosition();
this.textField.paint(this.bufferedImageGraphics);
super.render();