Add Mouse Position on MouseButtonEvent

I think Application always needs mouse position on mouse button event.

[patch]

Index: src/core/com/jme3/input/event/MouseButtonEvent.java

===================================================================

— src/core/com/jme3/input/event/MouseButtonEvent.java (revision 6468)

+++ src/core/com/jme3/input/event/MouseButtonEvent.java (working copy)

@@ -34,12 +34,16 @@



public class MouseButtonEvent extends InputEvent {


  • int x;
  • int y;

    int btnIndex;

    boolean pressed;


  • public MouseButtonEvent(int btnIndex, boolean pressed) {
  • public MouseButtonEvent(int btnIndex, boolean pressed, int x, int y) {

    this.btnIndex = btnIndex;

    this.pressed = pressed;
  •    this.x = x;<br />
    
  •    this.y = y;<br />
    

}



public int getButtonIndex() {

@@ -54,6 +58,14 @@

return !pressed;

}


  • public int getX() {
  •    return x;<br />
    
  • }

    +
  • public int getY() {
  •    return y;<br />
    
  • }

    +

    public String toString(){

    String str = "MouseButton(BTN="+btnIndex;

    if (pressed){

    Index: src/desktop/com/jme3/input/awt/AwtMouseInput.java

    ===================================================================

    — src/desktop/com/jme3/input/awt/AwtMouseInput.java (revision 6468)

    +++ src/desktop/com/jme3/input/awt/AwtMouseInput.java (working copy)

    @@ -203,13 +203,13 @@

    }



    public void mousePressed(MouseEvent arg0) {
  •    MouseButtonEvent evt = new MouseButtonEvent(getJMEButtonIndex(arg0), true);<br />
    
  •    MouseButtonEvent evt = new MouseButtonEvent(getJMEButtonIndex(arg0), true, arg0.getX(), arg0.getY());<br />
    

evt.setTime(arg0.getWhen());

eventQueue.add(evt);

}



public void mouseReleased(MouseEvent arg0) {

  •    MouseButtonEvent evt = new MouseButtonEvent(getJMEButtonIndex(arg0), false);<br />
    
  •    MouseButtonEvent evt = new MouseButtonEvent(getJMEButtonIndex(arg0), false, arg0.getX(), arg0.getY());<br />
    

evt.setTime(arg0.getWhen());

eventQueue.add(evt);

}

Index: src/lwjgl-ogl/com/jme3/input/lwjgl/LwjglMouseInput.java

===================================================================

— src/lwjgl-ogl/com/jme3/input/lwjgl/LwjglMouseInput.java (revision 6468)

+++ src/lwjgl-ogl/com/jme3/input/lwjgl/LwjglMouseInput.java (working copy)

@@ -102,7 +102,7 @@

}

if (btn != -1){

MouseButtonEvent evt = new MouseButtonEvent(btn,

  •                                                        Mouse.getEventButtonState());<br />
    
  •                                                        Mouse.getEventButtonState(), x, y);<br />
    

listener.onMouseButtonEvent(evt);

}

}



[/patch]

1 Like

This patch doesn’t break existing code and it is useful (please not just for me :o).

so I commited. rev. 6510

Yes i think it’s a good idea

Apparently this hasn’t been merged into the jMonkeyEngine3.jar which is available for download, has it? javadoc says, getX and getY exist, but my jar tells me otherwise. :frowning:

You have to use the nightly build if you want latest updates, this change was not in Alpha 4 indeed

In the menu above go to Download/Nightly Builds