Пример #1
0
        protected void GetCoordsInScreen(Gtk.Widget widget, int windowX, int windowY, out int screenX, out int screenY)
        {
            var gdkWindow = widget.GdkWindow;

            screenX = windowX;
            screenY = windowY;

            if (gdkWindow == null)
            {
                return;
            }

            CGRect windowRect = new CGRect(windowX, windowY, 0, 0);

            var ptr = gdk_quartz_window_get_nswindow(gdkWindow.Handle);

            if (ptr == IntPtr.Zero)
            {
                return;
            }
            NSWindow nsWin = Runtime.GetNSObject <NSWindow> (ptr);

            var screenRect = nsWin.ConvertRectToScreen(windowRect);

            screenX = (int)screenRect.X;
            screenY = (int)screenRect.Y;
        }
Пример #2
0
 public static CGPoint ConvertPointToScreenSafe(this NSWindow window, CGPoint point)
 {
     return(window.ConvertRectToScreen(new CGRect(point, CGSize.Empty)).Location);
 }