This is a strange one. We've been using RadDocking/RadPanes for a while for the main window of our application. There were lots of problems like the window not going behind the Task Bar, etc., so we upgraded to version 2011.2.0920.40. Now something that used to work doesn't work.
We put controls in the header portion of the some of the panes in the dock. One of the controls is a drop-down menu custom control, which is meant to be sort of a toolbar control that is a drop-down menu. So you click it, and it brings up a submenu, and the user picks something. Worked like a champ in previous versions. Now, with 2011.2.0920.40, I click the button, and the submenu appears, but as soon as I mouse over the menu, it disappears. I have attached a picture. I made a movie of it disappearing as well, but your site won't let me upload a .swf file.
To try and diagnose why the menu is closing, I subscribed to the SubmenuClosed event of the menu. When my handler gets hit, the call stack is not that interesting. I think it's too late. Here is most of it:
> Jmp.exe!WinHost::RecentFilesControl::onFilterMenuClosed(System::Object^ sender = 0x074afbf4, System::Windows::RoutedEventArgs^ e = 0x1319eb28) Line 1759 C++
PresentationCore.dll!System.Windows.RoutedEventHandlerInfo.InvokeHandler(object target, System.Windows.RoutedEventArgs routedEventArgs) + 0x7a bytes
PresentationCore.dll!System.Windows.EventRoute.InvokeHandlersImpl(object source = {System.Windows.Controls.MenuItem}, System.Windows.RoutedEventArgs args = {System.Windows.RoutedEventArgs}, bool reRaised = false) + 0x1ae bytes
PresentationCore.dll!System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject sender = {System.Windows.Controls.MenuItem}, System.Windows.RoutedEventArgs args = {System.Windows.RoutedEventArgs}) + 0x79 bytes
PresentationCore.dll!System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs e) + 0x29 bytes
PresentationFramework.dll!System.Windows.Controls.MenuItem.OnSubmenuClosed(System.Windows.RoutedEventArgs e) + 0x5 bytes
PresentationFramework.dll!System.Windows.Controls.MenuItem.OnPopupClosed(object source, System.EventArgs e) + 0x41 bytes
PresentationFramework.dll!System.Windows.FrameworkElement.RaiseClrEvent(System.Windows.EventPrivateKey key, System.EventArgs args) + 0x4f bytes
PresentationFramework.dll!System.Windows.Controls.Primitives.Popup.OnClosed(System.EventArgs e) + 0x47 bytes
PresentationFramework.dll!System.Windows.Controls.Primitives.Popup.DestroyWindow() + 0x8d bytes
PresentationFramework.dll!System.Windows.Controls.Primitives.Popup.HideWindow.AnonymousMethod__1(object sender, System.EventArgs args) + 0x22 bytes
WindowsBase.dll!System.Windows.Threading.DispatcherTimer.FireTick(object unused) + 0x31 bytes
WindowsBase.dll!System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate callback, object args, int numArgs) + 0x53 bytes
WindowsBase.dll!MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(object source = {System.Windows.Threading.Dispatcher}, System.Delegate method, object args, int numArgs, System.Delegate catchHandler = null) + 0x42 bytes
WindowsBase.dll!System.Windows.Threading.DispatcherOperation.InvokeImpl() + 0x8d bytes
WindowsBase.dll!System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(object state) + 0x38 bytes
mscorlib.dll!System.Threading.ExecutionContext.runTryCode(object userData) + 0x51 bytes
mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) + 0x6a bytes
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool ignoreSyncCtx) + 0x7e bytes
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) + 0x2c bytes
WindowsBase.dll!System.Windows.Threading.DispatcherOperation.Invoke() + 0x68 bytes
WindowsBase.dll!System.Windows.Threading.Dispatcher.ProcessQueue() + 0x15e bytes
WindowsBase.dll!System.Windows.Threading.Dispatcher.WndProcHook(System.IntPtr hwnd, int msg, System.IntPtr wParam, System.IntPtr lParam, ref bool handled) + 0x63 bytes
WindowsBase.dll!MS.Win32.HwndWrapper.WndProc(System.IntPtr hwnd = 0x003108cc, int msg = 0x0000c1a2, System.IntPtr wParam = 0x00000000, System.IntPtr lParam = 0x00000000, ref bool handled = false) + 0xbe bytes
WindowsBase.dll!MS.Win32.HwndSubclass.DispatcherCallbackOperation(object o) + 0x7d bytes
WindowsBase.dll!System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate callback, object args, int numArgs) + 0x53 bytes
WindowsBase.dll!MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(object source = {System.Windows.Threading.Dispatcher}, System.Delegate method, object args, int numArgs, System.Delegate catchHandler = null) + 0x42 bytes
WindowsBase.dll!System.Windows.Threading.Dispatcher.InvokeImpl(System.Windows.Threading.DispatcherPriority priority, System.TimeSpan timeout, System.Delegate method, object args, int numArgs) + 0xb4 bytes
WindowsBase.dll!MS.Win32.HwndSubclass.SubclassWndProc(System.IntPtr hwnd = 0x003108cc, int msg = 0x0000c1a2, System.IntPtr wParam = 0x00000000, System.IntPtr lParam = 0x00000000) + 0x104 bytes
user32.dll!_InternalCallWinProc@20() + 0x23 bytes
user32.dll!_UserCallWinProcCheckWow@32() + 0xb7 bytes
user32.dll!_DispatchMessageWorker@8() + 0xed bytes
user32.dll!_DispatchMessageW@4() + 0xf bytes
Any thoughts on what would be different that breaks this scenario? What other info do you need from me?
Thanks,
Eric
We put controls in the header portion of the some of the panes in the dock. One of the controls is a drop-down menu custom control, which is meant to be sort of a toolbar control that is a drop-down menu. So you click it, and it brings up a submenu, and the user picks something. Worked like a champ in previous versions. Now, with 2011.2.0920.40, I click the button, and the submenu appears, but as soon as I mouse over the menu, it disappears. I have attached a picture. I made a movie of it disappearing as well, but your site won't let me upload a .swf file.
To try and diagnose why the menu is closing, I subscribed to the SubmenuClosed event of the menu. When my handler gets hit, the call stack is not that interesting. I think it's too late. Here is most of it:
> Jmp.exe!WinHost::RecentFilesControl::onFilterMenuClosed(System::Object^ sender = 0x074afbf4, System::Windows::RoutedEventArgs^ e = 0x1319eb28) Line 1759 C++
PresentationCore.dll!System.Windows.RoutedEventHandlerInfo.InvokeHandler(object target, System.Windows.RoutedEventArgs routedEventArgs) + 0x7a bytes
PresentationCore.dll!System.Windows.EventRoute.InvokeHandlersImpl(object source = {System.Windows.Controls.MenuItem}, System.Windows.RoutedEventArgs args = {System.Windows.RoutedEventArgs}, bool reRaised = false) + 0x1ae bytes
PresentationCore.dll!System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject sender = {System.Windows.Controls.MenuItem}, System.Windows.RoutedEventArgs args = {System.Windows.RoutedEventArgs}) + 0x79 bytes
PresentationCore.dll!System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs e) + 0x29 bytes
PresentationFramework.dll!System.Windows.Controls.MenuItem.OnSubmenuClosed(System.Windows.RoutedEventArgs e) + 0x5 bytes
PresentationFramework.dll!System.Windows.Controls.MenuItem.OnPopupClosed(object source, System.EventArgs e) + 0x41 bytes
PresentationFramework.dll!System.Windows.FrameworkElement.RaiseClrEvent(System.Windows.EventPrivateKey key, System.EventArgs args) + 0x4f bytes
PresentationFramework.dll!System.Windows.Controls.Primitives.Popup.OnClosed(System.EventArgs e) + 0x47 bytes
PresentationFramework.dll!System.Windows.Controls.Primitives.Popup.DestroyWindow() + 0x8d bytes
PresentationFramework.dll!System.Windows.Controls.Primitives.Popup.HideWindow.AnonymousMethod__1(object sender, System.EventArgs args) + 0x22 bytes
WindowsBase.dll!System.Windows.Threading.DispatcherTimer.FireTick(object unused) + 0x31 bytes
WindowsBase.dll!System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate callback, object args, int numArgs) + 0x53 bytes
WindowsBase.dll!MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(object source = {System.Windows.Threading.Dispatcher}, System.Delegate method, object args, int numArgs, System.Delegate catchHandler = null) + 0x42 bytes
WindowsBase.dll!System.Windows.Threading.DispatcherOperation.InvokeImpl() + 0x8d bytes
WindowsBase.dll!System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(object state) + 0x38 bytes
mscorlib.dll!System.Threading.ExecutionContext.runTryCode(object userData) + 0x51 bytes
mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) + 0x6a bytes
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool ignoreSyncCtx) + 0x7e bytes
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) + 0x2c bytes
WindowsBase.dll!System.Windows.Threading.DispatcherOperation.Invoke() + 0x68 bytes
WindowsBase.dll!System.Windows.Threading.Dispatcher.ProcessQueue() + 0x15e bytes
WindowsBase.dll!System.Windows.Threading.Dispatcher.WndProcHook(System.IntPtr hwnd, int msg, System.IntPtr wParam, System.IntPtr lParam, ref bool handled) + 0x63 bytes
WindowsBase.dll!MS.Win32.HwndWrapper.WndProc(System.IntPtr hwnd = 0x003108cc, int msg = 0x0000c1a2, System.IntPtr wParam = 0x00000000, System.IntPtr lParam = 0x00000000, ref bool handled = false) + 0xbe bytes
WindowsBase.dll!MS.Win32.HwndSubclass.DispatcherCallbackOperation(object o) + 0x7d bytes
WindowsBase.dll!System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate callback, object args, int numArgs) + 0x53 bytes
WindowsBase.dll!MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(object source = {System.Windows.Threading.Dispatcher}, System.Delegate method, object args, int numArgs, System.Delegate catchHandler = null) + 0x42 bytes
WindowsBase.dll!System.Windows.Threading.Dispatcher.InvokeImpl(System.Windows.Threading.DispatcherPriority priority, System.TimeSpan timeout, System.Delegate method, object args, int numArgs) + 0xb4 bytes
WindowsBase.dll!MS.Win32.HwndSubclass.SubclassWndProc(System.IntPtr hwnd = 0x003108cc, int msg = 0x0000c1a2, System.IntPtr wParam = 0x00000000, System.IntPtr lParam = 0x00000000) + 0x104 bytes
user32.dll!_InternalCallWinProc@20() + 0x23 bytes
user32.dll!_UserCallWinProcCheckWow@32() + 0xb7 bytes
user32.dll!_DispatchMessageWorker@8() + 0xed bytes
user32.dll!_DispatchMessageW@4() + 0xf bytes
Any thoughts on what would be different that breaks this scenario? What other info do you need from me?
Thanks,
Eric