Some users of our tool have been reporting that docking certain windows makes our application crash.
Here is the callstack
System.InvalidOperationException: The specified Visual and this Visual do not share a common ancestor, so there is no valid transformation between the two Visuals.
at System.Windows.Media.Visual.TransformToVisual(Visual visual)
at #P6i.#O6i.#M6i(DockHost #tm, Point #bVe, IHierarchyContainer #cwf)
at #P6i.#O6i.#M6i(DockHost #tm, Point #bVe, IHierarchyContainer #cwf)
at #P6i.#O6i.#M6i(DockHost #tm, Point #bVe, IHierarchyContainer #cwf)
at #P6i.#O6i.#M6i(DockHost #tm, Point #bVe, IHierarchyContainer #cwf)
at #P6i.#O6i.#N6i(DockHost #tm, Point #bVe)
at ActiproSoftware.Windows.Controls.Docking.Primitives.DockGuidePanel.HitTest(Point #bVe)
at ActiproSoftware.Windows.Controls.Docking.Logic.WindowDragProcessorBase.#caj(Point #daj)
at ActiproSoftware.Windows.Controls.Docking.Logic.WindowDragProcessorBase.#cNi(Point #bVe)
at ActiproSoftware.Windows.Controls.Docking.DockSite.NotifyWindowDragMove(Point location)
at #g7i.#B9i.#d8i(Object #xhb, EventArgs #yhb)
at System.EventHandler.Invoke(Object sender, EventArgs e)
at System.Windows.Window.OnLocationChanged(EventArgs e)
at System.Windows.Window.WmMoveChangedHelper()
at System.Windows.Window.WmMoveChanged()
at System.Windows.Window.WindowFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at System.Windows.Interop.HwndSource.PublicHooksFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
I was able to reproduce this issue in the following way:
- Open our app
- Open some tabbed documents
- Drag one out and make it floating
- Close our app
- Relaunch it and wait for components to load
- Our floating window appears, grab it and bring it to one of the docking zone
- The app will crash
Though I suspect this crash might be reproduced otherwise.
Thoughts?
[Modified 8 years ago]