protected override void OnHierarchyChanged(global::Gtk.Widget previous_toplevel) { base.OnHierarchyChanged(previous_toplevel); var previousWindow = previous_toplevel as global::Gtk.Window; if (previousWindow != null) { previousWindow.ConfigureEvent -= OnWindowConfigured; previousWindow.SetFocus -= OnWindowSetFocus; } var toplevel = Toplevel as global::Gtk.Window; if (toplevel != null) { toplevel.ConfigureEvent += OnWindowConfigured; toplevel.SetFocus += OnWindowSetFocus; var window = toplevel.GdkWindow; if (window != null) { IntPtr gtkWindowPtr = GtkWin32Interop.HWndGet(window); IntPtr wpfWindowPtr = wpfWidgetHost.Handle; GtkWin32Interop.SetWindowLongPtr(wpfWindowPtr, (int)GtkWin32Interop.GWLParameter.GWL_HWNDPARENT, gtkWindowPtr); } } }
public static NSView GetView(global::Gtk.Widget widget) { var ptr = gdk_quartz_window_get_nsview(widget.GdkWindow.Handle); if (ptr == IntPtr.Zero) { return(null); } return(ObjCRuntime.Runtime.GetNSObject <NSView> (ptr)); }