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));
}
}