From 727c4e088da9e6b72dda4d99b423effcec991922 Mon Sep 17 00:00:00 2001 From: Adrian Ehrsam Date: Thu, 12 Apr 2018 11:34:03 +0200 Subject: [PATCH] Fixes a really bad Memory Leak --- .../ContextMenu/ContextMenu.cs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Release/Silverlight5/Source/Controls.Input.Toolkit/ContextMenu/ContextMenu.cs b/Release/Silverlight5/Source/Controls.Input.Toolkit/ContextMenu/ContextMenu.cs index bfeac6e..9a47995 100644 --- a/Release/Silverlight5/Source/Controls.Input.Toolkit/ContextMenu/ContextMenu.cs +++ b/Release/Silverlight5/Source/Controls.Input.Toolkit/ContextMenu/ContextMenu.cs @@ -20,12 +20,13 @@ public class ContextMenu : MenuBase /// /// Stores a reference to the current root visual. /// - private FrameworkElement _rootVisual; + private static FrameworkElement _rootVisual; /// /// Stores the last known mouse position (via MouseMove). /// - private Point _mousePosition; + + public static Point MousePosition; /// /// Stores a reference to the object that owns the ContextMenu. @@ -167,7 +168,7 @@ private void OnIsOpenChanged(bool oldValue, bool newValue) { if (newValue) { - OpenPopup(_mousePosition); + OpenPopup(MousePosition); } else { @@ -289,9 +290,9 @@ private void HandleLayoutUpdated(object sender, EventArgs e) /// /// Source of the event. /// Event arguments. - private void HandleRootVisualMouseMove(object sender, MouseEventArgs e) + private static void HandleRootVisualMouseMove(object sender, MouseEventArgs e) { - _mousePosition = e.GetPosition(null); + MousePosition = e.GetPosition(null); } /// @@ -308,7 +309,7 @@ private void HandleOwnerMouseRightButtonDown(object sender, MouseButtonEventArgs /// /// Initialize the _rootVisual property (if possible and not already done). /// - private void InitializeRootVisual() + private static void InitializeRootVisual() { if (null == _rootVisual) { @@ -480,3 +481,4 @@ private void ClosePopup() } } } +