| Index: src/plugin/PluginClass.cpp |
| =================================================================== |
| --- a/src/plugin/PluginClass.cpp |
| +++ b/src/plugin/PluginClass.cpp |
| @@ -259,11 +259,8 @@ |
| s_criticalSectionLocal.Lock(); |
| { |
| - if (settings->GetPluginEnabled()) |
| - { |
| - s_mimeFilter = CPluginClientFactory::GetMimeFilterClientInstance(); |
| - } |
| - |
| + // Always register on startup, then check if we need to unregister in a separate thread |
| + s_mimeFilter = CPluginClientFactory::GetMimeFilterClientInstance(); |
| s_asyncWebBrowser2 = unknownSite; |
| s_instances.Add(this); |
| } |
| @@ -732,9 +729,14 @@ |
| bool CPluginClass::InitObject(bool bBHO) |
| { |
| + CPluginSettings* settings = CPluginSettings::GetInstance(); |
| + |
| + if (!settings->GetPluginEnabled()) |
| + { |
| + s_mimeFilter->Unregister(); |
| + } |
| + |
| // Load theme module |
| - |
| - |
| s_criticalSectionLocal.Lock(); |
| { |
| if (!s_hUxtheme) |
| @@ -818,8 +820,6 @@ |
| } |
| } |
| - |
| - CPluginSettings* settings = CPluginSettings::GetInstance(); |
| return true; |
| } |