[Nasa-exp-checkins] SF.net SVN: nasa-exp: [3725] trunk/WorldWind/WorldWindow/WorldWindow.cs
Brought to you by:
baker99-bull,
vigilant
From: <ltp...@us...> - 2007-03-23 20:35:16
|
Revision: 3725 http://svn.sourceforge.net/nasa-exp/?rev=3725&view=rev Author: ltpmaxwell Date: 2007-03-23 13:35:17 -0700 (Fri, 23 Mar 2007) Log Message: ----------- WW-784: WorldWindow throws exceptions when added to a .Net parent form - Added checks in the mouse events for null world, drawargs, and world camera Modified Paths: -------------- trunk/WorldWind/WorldWindow/WorldWindow.cs Modified: trunk/WorldWind/WorldWindow/WorldWindow.cs =================================================================== --- trunk/WorldWind/WorldWindow/WorldWindow.cs 2007-03-23 20:08:20 UTC (rev 3724) +++ trunk/WorldWind/WorldWindow/WorldWindow.cs 2007-03-23 20:35:17 UTC (rev 3725) @@ -1122,6 +1122,10 @@ /// </summary> protected override void OnMouseWheel(MouseEventArgs e) { + if (!IsWorldReady()) + { + return; + } try { if (this._menuBar.OnMouseWheel(e)) @@ -1405,6 +1409,11 @@ { this.Focus(); //fixes mousewheel not working problem + if (!IsWorldReady()) + { + return; + } + DrawArgs.LastMousePosition.X = e.X; DrawArgs.LastMousePosition.Y = e.Y; @@ -1451,6 +1460,10 @@ protected override void OnMouseUp(MouseEventArgs e) { + if (!IsWorldReady()) + { + return; + } DrawArgs.LastMousePosition.X = e.X; DrawArgs.LastMousePosition.Y = e.Y; @@ -1564,8 +1577,20 @@ } } + private bool IsWorldReady() + { + if (this.m_World == null || this.drawArgs == null || this.drawArgs.WorldCamera == null) + return false; + else + return true; + } + protected override void OnMouseMove(MouseEventArgs e) { + if (!IsWorldReady()) + { + return; + } // Default to default cursor DrawArgs.MouseCursor = CursorType.Arrow; @@ -1717,6 +1742,10 @@ protected override void OnMouseLeave(EventArgs e) { + if (!IsWorldReady()) + { + return; + } if (_menuBar != null) // reset menu bar mouse hover state. _menuBar.OnMouseMove(new MouseEventArgs(MouseButtons.None, 0, -1, -1, 0)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |