X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FManaged.Windows.Forms%2FSystem.Windows.Forms.CarbonInternal%2FApplicationHandler.cs;h=f8fd95b40c254541a7918682e6d3daa80a1636d0;hb=0146859e63468733659e108f7e8e4255e9ae0027;hp=6835b133a6c1aee34485e6c62692c7960ae073f8;hpb=9082f6eb90ae2a50ceac7c775000229ec3c5d3fe;p=mono.git diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms.CarbonInternal/ApplicationHandler.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms.CarbonInternal/ApplicationHandler.cs index 6835b133a6c..f8fd95b40c2 100644 --- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms.CarbonInternal/ApplicationHandler.cs +++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms.CarbonInternal/ApplicationHandler.cs @@ -50,15 +50,24 @@ namespace System.Windows.Forms.CarbonInternal { internal ApplicationHandler (XplatUICarbon driver) : base (driver) {} - public bool ProcessEvent (IntPtr eventref, IntPtr handle, uint kind, ref MSG msg) { + public bool ProcessEvent (IntPtr callref, IntPtr eventref, IntPtr handle, uint kind, ref MSG msg) { switch (kind) { + case kEventAppActivated: { + foreach (IntPtr utility_window in XplatUICarbon.UtilityWindows) + if (!XplatUICarbon.IsWindowVisible (utility_window)) + XplatUICarbon.ShowWindow (utility_window); + break; + } case kEventAppDeactivated: { if (XplatUICarbon.FocusWindow != IntPtr.Zero) { Driver.SendMessage (XplatUICarbon.FocusWindow, Msg.WM_KILLFOCUS, IntPtr.Zero, IntPtr.Zero); } - if (XplatUICarbon.GrabHwnd != null) { - Driver.SendMessage (XplatUICarbon.GrabHwnd.Handle, Msg.WM_LBUTTONDOWN, (IntPtr)MsgButtons.MK_LBUTTON, (IntPtr) (Driver.MousePosition.X << 16 | Driver.MousePosition.Y)); + if (XplatUICarbon.Grab.Hwnd != IntPtr.Zero) { + Driver.SendMessage (Hwnd.ObjectFromHandle (XplatUICarbon.Grab.Hwnd).Handle, Msg.WM_LBUTTONDOWN, (IntPtr)MsgButtons.MK_LBUTTON, (IntPtr) (Driver.MousePosition.X << 16 | Driver.MousePosition.Y)); } + foreach (IntPtr utility_window in XplatUICarbon.UtilityWindows) + if (XplatUICarbon.IsWindowVisible (utility_window)) + XplatUICarbon.HideWindow (utility_window); break; } }