//------------------------------------------------------------------- protected override void OnMouseWheel(MouseEventArgs e) { if (Root == null) { return; } if (ModifierKeys.HasFlag(Keys.Control)) { Options.Zoom *= Math.Sign(e.Delta) > 0 ? 1.1f : 0.9f; EditionToolUpdate(null); ShortcutModeClear(); RefreshGraph(); if (Selected != null) { Goto(Selected); } return; } PickingResult pickResult = PickTaxon(Root, ClientToGraph(e.Location)); TaxonTreeNode pick = pickResult?.GetMain(); if (pick != null) { if (e.Delta > 0) { pick.ExpandExtended(); RefreshGraph(); } else { pick.CollapseExtended(); RefreshGraph(); if (pick.R.Bottom < e.Location.Y - Origin.Y) { Origin.Y = e.Location.Y + 10 - pick.R.Bottom; } } } }