diff --git a/Source/OpenTK/GameWindow.cs b/Source/OpenTK/GameWindow.cs
index 849827ce..29e999da 100644
--- a/Source/OpenTK/GameWindow.cs
+++ b/Source/OpenTK/GameWindow.cs
@@ -1365,7 +1365,7 @@ namespace OpenTK
#endregion
#region PointToScreen
-#if false // Todo: Linux / Mac OS X support missing.
+
///
/// Converts the client-area coordinates of a specified point to screen coordinates.
///
@@ -1373,9 +1373,14 @@ namespace OpenTK
/// The screen coordinates of the point, relative to the upper-left corner of the screen. Note, a screen-coordinate point that is above the window's client area has a negative y-coordinate. Similarly, a screen coordinate to the left of a client area has a negative x-coordinate.
public System.Drawing.Point PointToScreen(System.Drawing.Point p)
{
- return glWindow.PointToScreen(p);
+ // Here we use the fact that PointToClient just translates the point, and PointToScreen
+ // should perform the inverse operation.
+ System.Drawing.Point trans = PointToClient(System.Drawing.Point.Empty);
+ p.X -= trans.X;
+ p.Y -= trans.Y;
+ return p;
}
-#endif
+
#endregion
#region --- IDisposable Members ---