From 768c3ba1f266ddbc136660fec35cb52d903e6e15 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Tue, 5 Feb 2019 22:44:42 +0300 Subject: fixes #1823 (PluginUpdater: newly downloaded plugins aren't loaded when options are opened) --- src/mir_app/src/pluginopts.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/mir_app/src/pluginopts.cpp b/src/mir_app/src/pluginopts.cpp index 7663268de2..fb6cbf4318 100644 --- a/src/mir_app/src/pluginopts.cpp +++ b/src/mir_app/src/pluginopts.cpp @@ -37,7 +37,7 @@ struct PluginListItemData wchar_t fileName[MAX_PATH]; HINSTANCE hInst; int flags, stdPlugin; - bool bRequiresRestart, bWasLoaded; + bool bRequiresRestart, bWasLoaded, bWasChecked; wchar_t *author, *description, *copyright, *homepage; MUUID uuid; @@ -135,8 +135,13 @@ static BOOL dialogListPlugins(WIN32_FIND_DATA *fd, wchar_t *path, WPARAM, LPARAM it.lParam = (LPARAM)dat; int iRow = ListView_InsertItem(hwndList, &it); - if (bNoCheckbox || isPluginOnWhiteList(fd->cFileName)) - ListView_SetItemState(hwndList, iRow, bNoCheckbox ? 0x3000 : 0x2000, LVIS_STATEIMAGEMASK); + if (bNoCheckbox) { + ListView_SetItemState(hwndList, iRow, 0x3000, LVIS_STATEIMAGEMASK); + } + else if (isPluginOnWhiteList(fd->cFileName)) { + dat->bWasChecked = true; + ListView_SetItemState(hwndList, iRow, 0x2000, LVIS_STATEIMAGEMASK); + } if (iRow != -1) { // column 2: plugin short name @@ -307,6 +312,10 @@ public: m_szFilter.Empty(); enumPlugins(dialogListPlugins, (WPARAM)m_hwnd, (LPARAM)m_plugList.GetHwnd()); + for (auto &it : arPluginList) + if (!it->bWasLoaded && it->bWasChecked && !it->hInst) + LoadPluginDynamically(it); + // sort out the headers m_plugList.SetColumnWidth(0, LVSCW_AUTOSIZE); // dll name int w = m_plugList.GetColumnWidth(0); -- cgit v1.2.3