protected void OnMouseMove(object sender, MouseEventArgs e) {
if (!Form.Focused) {
_moving = false;
return;
}
MousePosition = e.Location;
if (Math.Abs(e.X - _startMousePos.X) > 2 || Math.Abs(e.Y - _startMousePos.Y) > 2) {
_moved = true;
}
if (_moving && !_down) {
var dx = e.X - _lastMousePos.X;
var dy = e.Y - _lastMousePos.Y;
if (e.Button == (InvertMouseButtons ? MouseButtons.Left : MouseButtons.Middle) || e.Button == MouseButtons.Left && IsPressed(Keys.Space)) {
CameraMousePan(dx, dy);
} else if (e.Button == (InvertMouseButtons ? MouseButtons.Right : MouseButtons.Left)) {
if (FormMoving) {
Form.Left += e.X - _lastMousePos.X;
Form.Top += e.Y - _lastMousePos.Y;
_lastMousePos = e.Location;
return;
}
CameraMouseRotate(dx, dy);
} else if (e.Button == (InvertMouseButtons ? MouseButtons.Middle : MouseButtons.Right)) {
CameraMouseZoom(dx, dy);
}
}
_down = false;
_lastMousePos = e.Location;
}