private void UpdateRemotePointer() { // HACK: this check insures that while in DesignMode, no messages are sent to a VNC Host // (i.e., there won't be one--NullReferenceException) if (!DesignMode && IsConnected) { System.Windows.Point mousePoint = Mouse.GetPosition(designModeDesktop); System.Drawing.Point current = new System.Drawing.Point(Convert.ToInt32(mousePoint.X), Convert.ToInt32(mousePoint.Y)); byte mask = 0; if (Mouse.LeftButton == MouseButtonState.Pressed) { mask += 1; } if (Mouse.MiddleButton == MouseButtonState.Pressed) { mask += 2; } if (Mouse.RightButton == MouseButtonState.Pressed) { mask += 4; } System.Drawing.Point adjusted = desktopPolicy.UpdateRemotePointer(current); //if (adjusted.X < 0 || adjusted.Y < 0) // throw new Exception(); vnc.WritePointerEvent(mask, desktopPolicy.UpdateRemotePointer(current)); } }