1
0
mirror of https://github.com/chylex/TweetDuck.git synced 2025-08-21 03:54:07 +02:00

Fix stuck processes after closing the app

Closes 
This commit is contained in:
2020-05-04 13:23:07 +02:00
parent d48da3d51c
commit f7e9ad74d1
3 changed files with 18 additions and 7 deletions

@@ -48,10 +48,13 @@ namespace TweetDuck.Browser{
public AnalyticsFile AnalyticsFile => analytics?.File ?? AnalyticsFile.Dummy; public AnalyticsFile AnalyticsFile => analytics?.File ?? AnalyticsFile.Dummy;
#pragma warning disable IDE0069 // Disposable fields should be disposed
private readonly TweetDeckBrowser browser; private readonly TweetDeckBrowser browser;
private readonly FormNotificationTweet notification;
#pragma warning restore IDE0069 // Disposable fields should be disposed
private readonly PluginManager plugins; private readonly PluginManager plugins;
private readonly UpdateHandler updates; private readonly UpdateHandler updates;
private readonly FormNotificationTweet notification;
private readonly ContextMenu contextMenu; private readonly ContextMenu contextMenu;
private readonly UpdateBridge updateBridge; private readonly UpdateBridge updateBridge;
@@ -90,6 +93,7 @@ namespace TweetDuck.Browser{
Disposed += (sender, args) => { Disposed += (sender, args) => {
Config.MuteToggled -= Config_MuteToggled; Config.MuteToggled -= Config_MuteToggled;
Config.TrayBehaviorChanged -= Config_TrayBehaviorChanged; Config.TrayBehaviorChanged -= Config_TrayBehaviorChanged;
browser.Dispose();
}; };
Config.MuteToggled += Config_MuteToggled; Config.MuteToggled += Config_MuteToggled;
@@ -115,9 +119,7 @@ namespace TweetDuck.Browser{
if (disposing){ if (disposing){
components?.Dispose(); components?.Dispose();
browser.Dispose();
updates.Dispose(); updates.Dispose();
notification.Dispose();
contextMenu.Dispose(); contextMenu.Dispose();
notificationScreenshotManager?.Dispose(); notificationScreenshotManager?.Dispose();

@@ -103,8 +103,11 @@ namespace TweetDuck.Browser.Notification{
protected double SizeScale => DpiScale * Config.ZoomLevel / 100.0; protected double SizeScale => DpiScale * Config.ZoomLevel / 100.0;
protected readonly FormBrowser owner; protected readonly FormBrowser owner;
#pragma warning disable IDE0069 // Disposable fields should be disposed
protected readonly ChromiumWebBrowser browser; protected readonly ChromiumWebBrowser browser;
#pragma warning restore IDE0069 // Disposable fields should be disposed
private readonly ResourceHandlerNotification resourceHandler = new ResourceHandlerNotification(); private readonly ResourceHandlerNotification resourceHandler = new ResourceHandlerNotification();
private DesktopNotification currentNotification; private DesktopNotification currentNotification;
@@ -144,7 +147,11 @@ namespace TweetDuck.Browser.Notification{
this.browser.SetupZoomEvents(); this.browser.SetupZoomEvents();
Controls.Add(browser); Controls.Add(browser);
Disposed += (sender, args) => this.owner.FormClosed -= owner_FormClosed;
Disposed += (sender, args) => {
this.owner.FormClosed -= owner_FormClosed;
this.browser.Dispose();
};
DpiScale = this.GetDPIScale(); DpiScale = this.GetDPIScale();
@@ -155,7 +162,6 @@ namespace TweetDuck.Browser.Notification{
protected override void Dispose(bool disposing){ protected override void Dispose(bool disposing){
if (disposing){ if (disposing){
components?.Dispose(); components?.Dispose();
browser.Dispose();
resourceHandler.Dispose(); resourceHandler.Dispose();
} }

@@ -56,7 +56,10 @@ namespace TweetDuck.Dialogs{
} }
} }
#pragma warning disable IDE0069 // Disposable fields should be disposed
private readonly ChromiumWebBrowser browser; private readonly ChromiumWebBrowser browser;
#pragma warning restore IDE0069 // Disposable fields should be disposed
private string nextUrl; private string nextUrl;
private FormGuide(string url, FormBrowser owner){ private FormGuide(string url, FormBrowser owner){
@@ -87,12 +90,12 @@ namespace TweetDuck.Dialogs{
browser.SetupZoomEvents(); browser.SetupZoomEvents();
Controls.Add(browser); Controls.Add(browser);
Disposed += (sender, args) => browser.Dispose();
} }
protected override void Dispose(bool disposing){ protected override void Dispose(bool disposing){
if (disposing){ if (disposing){
components?.Dispose(); components?.Dispose();
browser.Dispose();
} }
base.Dispose(disposing); base.Dispose(disposing);