From e1cc9b05ac70f5ada04ef3f4e04511d79a7f96cb Mon Sep 17 00:00:00 2001
From: Michael Zangl <michael.zangl@student.kit.edu>
Date: Mon, 19 Oct 2015 15:25:52 +0200
Subject: [PATCH] Fix #11989: MouseState not containing mousePos

---
 src/org/openstreetmap/josm/gui/MapStatus.java |   17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/org/openstreetmap/josm/gui/MapStatus.java b/src/org/openstreetmap/josm/gui/MapStatus.java
index b8db1a4..0c7693d 100644
--- a/src/org/openstreetmap/josm/gui/MapStatus.java
+++ b/src/org/openstreetmap/josm/gui/MapStatus.java
@@ -650,12 +650,10 @@ public class MapStatus extends JPanel implements Helpful, Destroyable, Preferenc
          * @param modifiers The new modifiers.
          */
         public synchronized void updateMousePosition(Point mousePos, int modifiers) {
-            MouseState ms = new MouseState();
-            if (mousePos == null) {
-                ms.mousePos = lastMousePos;
-            } else {
+            if (mousePos != null) {
                 lastMousePos = mousePos;
             }
+            MouseState ms = new MouseState(lastMousePos, modifiers);
             // remove mouse states that are in the queue. Our mouse state is newer.
             incommingMouseState.clear();
             incommingMouseState.offer(ms);
@@ -666,9 +664,14 @@ public class MapStatus extends JPanel implements Helpful, Destroyable, Preferenc
      * Everything, the collector is interested of. Access must be synchronized.
      * @author imi
      */
-    static class MouseState {
-        private Point mousePos;
-        private int modifiers;
+    private static class MouseState {
+        private final Point mousePos;
+        private final int modifiers;
+
+	MouseState(Point mousePos, int modifiers) {
+            this.mousePos = mousePos;
+            this.modifiers = modifiers;
+        }
     }
 
     private transient AWTEventListener awtListener = new AWTEventListener() {
-- 
1.7.9.5

