-
-
Notifications
You must be signed in to change notification settings - Fork 63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tooltip's need revised for GC #941
Comments
The problem is indeed the This is the solution I came up with for the Mystic Crafting module: public class DisposableTooltip : Tooltip
{
public DisposableTooltip(ITooltipView tooltipView) : base(tooltipView) { }
private void RemoveFromCollection()
{
var type = typeof(Tooltip);
var field = type.GetField("_allTooltips", BindingFlags.NonPublic | BindingFlags.Static);
if (field == null)
return;
var tooltips = (ControlCollection<Tooltip>)field.GetValue(null);
if (tooltips == null)
return;
tooltips.Remove(this);
}
protected override void DisposeControl()
{
RemoveFromCollection();
base.DisposeControl();
}
} |
@dlamkins I'm happy to help with this issue, but I'm not entirely sure how to solve the problem below. Firstly, there are 3 issues I've found
Menu and Tooltip are not disposed, because they are not called in the Is it safe to dispose the Tooltip and Menu when a control is disposed? The same Tooltip object could be assigned to multiple controls. For example: var tooltip = new Tooltip()
var imageControl = new Image();
var labelControl = new Label();
imageControl.Tooltip = tooltip;
labelControl.Tooltip = tooltip;
imageControl.Dispose() //Tooltip should not be disposed because it's used multiple times? The Let me know what you think, but if the above is not an issue, then I can implement the following solution:
|
Something else to note, is that tooltips are seemingly disposed when using the protected override void Build(Container buildPanel) {
_tooltipLabel.Parent = buildPanel;
buildPanel.Hidden += (sender, args) => buildPanel.Dispose();
} I think we should change this as well. |
There is an issue with Tooltips that prevents them from being properly collected. Some initial investigation is discussed here:
https://discord.com/channels/531175899588984842/599270434642460753/1208556624902492250
The text was updated successfully, but these errors were encountered: