protected override void OnMouseUp(MouseButtonEventArgs e) { base.OnMouseUp(e); try { InputUtils.UpdateMouse(e.Mouse); if (linerider.IO.TrackRecorder.Recording) { return; } _dragRider = false; var r = _input.ProcessMouseMessage(e); _uicursor = _input.MouseCaptured; InputUtils.CheckCurrentHotkey(); if (!r || CurrentTools.SelectedTool.IsMouseButtonDown) { if (!CurrentTools.SelectedTool.IsMouseButtonDown && Canvas.GetOpenWindows().Count != 0) { UpdateCursor(); return; } if (e.Button == MouseButton.Left) { CurrentTools.SelectedTool.OnMouseUp(new Vector2d(e.X, e.Y)); } else if (e.Button == MouseButton.Right) { CurrentTools.SelectedTool.OnMouseRightUp(new Vector2d(e.X, e.Y)); } } UpdateCursor(); } catch (Exception ex) { // SDL2 backend eats exceptions. // we have to manually crash. Program.Crash(ex, true); Close(); } }
protected override void OnKeyUp(KeyboardKeyEventArgs e) { base.OnKeyUp(e); try { InputUtils.UpdateKeysDown(e.Keyboard, e.Modifiers); if (linerider.IO.TrackRecorder.Recording) { return; } InputUtils.CheckCurrentHotkey(); CurrentTools.SelectedTool.OnKeyUp(e.Key); _input.ProcessKeyUp(e); UpdateCursor(); Invalidate(); } catch (Exception ex) { // SDL2 backend eats exceptions. // we have to manually crash. Program.Crash(ex, true); Close(); } }