Changeset 3919 in josm for trunk/src/org/openstreetmap/josm/gui
- Timestamp:
- 2011-02-20T15:08:35+01:00 (13 years ago)
- Location:
- trunk/src/org/openstreetmap/josm/gui
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/MapMover.java
r1939 r3919 67 67 */ 68 68 private final NavigatableComponent nc; 69 /**70 * The old cursor when we changed it to movement cursor.71 */72 private Cursor oldCursor;73 69 74 70 private boolean movementInPlace = false; … … 167 163 movementInPlace = true; 168 164 mousePosMove = nc.getEastNorth(e.getX(), e.getY()); 169 oldCursor = nc.getCursor(); 170 nc.setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR)); 165 nc.setNewCursor(Cursor.MOVE_CURSOR, this); 171 166 } 172 167 … … 178 173 return; 179 174 movementInPlace = false; 180 if (oldCursor != null) 181 nc.setCursor(oldCursor); 182 else 183 nc.setCursor(Cursor.getDefaultCursor()); 175 nc.resetCursor(this); 184 176 mousePosMove = null; 185 oldCursor = null;186 177 } 187 178 -
trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java
r3838 r3919 4 4 import static org.openstreetmap.josm.tools.I18n.marktr; 5 5 6 import java.awt.Cursor; 6 7 import java.awt.Point; 7 8 import java.awt.Rectangle; … … 1213 1214 SYSTEMS_OF_MEASUREMENT.put(marktr("Imperial"), IMPERIAL_SOM); 1214 1215 } 1216 1217 private class CursorInfo { 1218 public Cursor cursor; 1219 public Object object; 1220 public CursorInfo(Cursor c, Object o) { 1221 cursor = c; 1222 object = o; 1223 } 1224 } 1225 1226 private LinkedList<CursorInfo> Cursors = new LinkedList<CursorInfo>(); 1227 /** 1228 * Set new cursor. 1229 */ 1230 public void setNewCursor(Cursor cursor, Object reference) { 1231 if(Cursors.size() > 0) { 1232 CursorInfo l = Cursors.getLast(); 1233 if(l != null && l.cursor == cursor && l.object == reference) { 1234 return; 1235 } 1236 stripCursors(reference); 1237 } 1238 Cursors.add(new CursorInfo(cursor, reference)); 1239 setCursor(cursor); 1240 } 1241 public void setNewCursor(int cursor, Object reference) { 1242 setNewCursor(Cursor.getPredefinedCursor(cursor), reference); 1243 } 1244 /** 1245 * Remove the new cursor and reset to previous 1246 */ 1247 public void resetCursor(Object reference) { 1248 if(Cursors.size() == 0) { 1249 setCursor(null); 1250 return; 1251 } 1252 CursorInfo l = Cursors.getLast(); 1253 stripCursors(reference); 1254 if(l != null && l.object == reference) { 1255 if(Cursors.size() == 0) 1256 setCursor(null); 1257 else 1258 setCursor(Cursors.getLast().cursor); 1259 } 1260 } 1261 1262 private void stripCursors(Object reference) { 1263 LinkedList<CursorInfo> c = new LinkedList<CursorInfo>(); 1264 for(CursorInfo i : Cursors) { 1265 if(i.object != reference) 1266 c.add(i); 1267 } 1268 Cursors = c; 1269 } 1215 1270 }
Note:
See TracChangeset
for help on using the changeset viewer.