}\r
\r
if (_hoverWidget != null) {\r
+ //check topmost graphicobject first\r
+ GraphicObject tmp = _hoverWidget;\r
+ GraphicObject topc = null;\r
+ while (tmp is GraphicObject) {\r
+ topc = tmp;\r
+ tmp = tmp.Parent as GraphicObject;\r
+ }\r
+ int idxhw = GraphicObjects.IndexOf (topc);\r
+ if (idxhw != 0) {\r
+ int i = 0;\r
+ while (i < idxhw) {\r
+ if (GraphicObjects [i].MouseIsIn (e.Position)) {\r
+ _hoverWidget.onMouseLeave (this, e);\r
+ GraphicObjects [i].checkHoverWidget (e);\r
+ return;\r
+ }\r
+ i++;\r
+ }\r
+ }\r
+ \r
+ \r
if (_hoverWidget.MouseIsIn (e.Position)) {\r
_hoverWidget.checkHoverWidget (e);\r
return;\r