altosuilib: Allow for no transform in map mouse wheel function
authorKeith Packard <keithp@keithp.com>
Sat, 20 Jun 2015 18:54:20 +0000 (11:54 -0700)
committerKeith Packard <keithp@keithp.com>
Tue, 23 Jun 2015 04:04:43 +0000 (21:04 -0700)
Signed-off-by: Keith Packard <keithp@keithp.com>
altosuilib/AltosUIMapNew.java

index 3efffb00ddb37316ab8e5518924172d0d168a279..5f63a3c226f5871dfd8656a2d177052b695226b5 100644 (file)
@@ -140,17 +140,23 @@ public class AltosUIMapNew extends JComponent implements AltosFlightDisplay, Alt
                        int     zoom_change = e.getWheelRotation();
 
                        map.notice_user_input();
                        int     zoom_change = e.getWheelRotation();
 
                        map.notice_user_input();
-                       AltosLatLon     mouse_lat_lon = map.transform.screen_lat_lon(new AltosPointInt(e.getPoint().x, e.getPoint().y));
+                       AltosLatLon     mouse_lat_lon = null;
+
+                       if (map.transform != null)
+                               mouse_lat_lon = map.transform.screen_lat_lon(new AltosPointInt(e.getPoint().x, e.getPoint().y));
+
                        map.set_zoom(map.get_zoom() - zoom_change);
 
                        map.set_zoom(map.get_zoom() - zoom_change);
 
-                       AltosPointDouble        new_mouse = map.transform.screen(mouse_lat_lon);
+                       if (mouse_lat_lon != null) {
+                               AltosPointDouble        new_mouse = map.transform.screen(mouse_lat_lon);
 
 
-                       int     dx = getWidth()/2 - e.getPoint().x;
-                       int     dy = getHeight()/2 - e.getPoint().y;
+                               int     dx = getWidth()/2 - e.getPoint().x;
+                               int     dy = getHeight()/2 - e.getPoint().y;
 
 
-                       AltosLatLon     new_centre = map.transform.screen_lat_lon(new AltosPointInt((int) new_mouse.x + dx, (int) new_mouse.y + dy));
+                               AltosLatLon     new_centre = map.transform.screen_lat_lon(new AltosPointInt((int) new_mouse.x + dx, (int) new_mouse.y + dy));
 
 
-                       map.centre(new_centre);
+                               map.centre(new_centre);
+                       }
                }
 
                /* ComponentListener methods */
                }
 
                /* ComponentListener methods */