internal override bool SetVisible(IntPtr handle, bool visible, bool activate) {
Hwnd hwnd = Hwnd.ObjectFromHandle (handle);
object window = WindowMapping [hwnd.Handle];
if (window != null)
if (visible)
ShowWindow ((IntPtr)window);
else
HideWindow ((IntPtr)window);
if (visible)
SendMessage(handle, Msg.WM_WINDOWPOSCHANGED, IntPtr.Zero, IntPtr.Zero);
HIViewSetVisible (hwnd.whole_window, visible);
HIViewSetVisible (hwnd.client_window, visible);
hwnd.visible = visible;
hwnd.Mapped = true;
return true;
}