This is a migrated thread and some comments may be shown as answers.

popup menu disappears on mouseover with RadControls 2011.2.0920.40

2 Answers 62 Views
Docking
This is a migrated thread and some comments may be shown as answers.
Eric Hill
Top achievements
Rank 1
Eric Hill asked on 25 Oct 2011, 04:08 PM
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

2 Answers, 1 is accepted

Sort by
0
Eric
Top achievements
Rank 1
answered on 25 Oct 2011, 06:48 PM
Hey,

I was able to stop the menu from disappearing on mouse-over by capturing the mouse (using SubTree) on SubmenuOpened and releasing capture on SubmenuClosed.  This is not a workaround I can check in, because it prevents a lot of other desired behavior (like click elsewhere in the application and the menu goes away and focus goes there), but maybe it helps you figure out what you changed that caused this change in behavior.  Why do I think it has something to do with the new look that highlights the RadPane that has focus?

Eric
0
Konstantina
Telerik team
answered on 31 Oct 2011, 09:35 AM
Hello Eric,

We are aware of this issue. We will do our best to provide a fix for the next release which due in the middle of November.
Sorry for the caused inconvenience.

Best wishes,
Konstantina
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>
Tags
Docking
Asked by
Eric Hill
Top achievements
Rank 1
Answers by
Eric
Top achievements
Rank 1
Konstantina
Telerik team
Share this question
or