popup menu disappears on mouseover with RadControls 2011.2.0920.40

3 posts, 0 answers
  1. Eric Hill
    Eric Hill avatar
    7 posts
    Member since:
    Jan 2010

    Posted 25 Oct 2011 Link to this post

    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. Eric
    Eric avatar
    2 posts
    Member since:
    Jul 2010

    Posted 25 Oct 2011 Link to this post

    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
  3. UI for WPF is Visual Studio 2017 Ready
  4. Konstantina
    Admin
    Konstantina avatar
    2332 posts

    Posted 31 Oct 2011 Link to this post

    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 >>
Back to Top