diff --git a/src/controls.cpp b/src/controls.cpp index 57121561..2564e88b 100644 --- a/src/controls.cpp +++ b/src/controls.cpp @@ -597,16 +597,25 @@ LONG_PTR _app_nmcustdraw_listview (LPNMLVCUSTOMDRAW lpnmlv) { INT view_type = (INT)SendMessage (lpnmlv->nmcd.hdr.hwndFrom, LVM_GETVIEW, 0, 0); BOOLEAN is_tableview = (view_type == LV_VIEW_DETAILS || view_type == LV_VIEW_SMALLICON || view_type == LV_VIEW_TILE); + BOOLEAN is_validconnection = FALSE; INT listview_id = PtrToInt ((PVOID)lpnmlv->nmcd.hdr.idFrom); if ((listview_id >= IDC_APPS_PROFILE && listview_id <= IDC_APPS_UWP) || listview_id == IDC_RULE_APPS_ID || listview_id == IDC_NETWORK || listview_id == IDC_LOG) { - SIZE_T app_hash; + SIZE_T app_hash = 0; if (listview_id == IDC_NETWORK) { - app_hash = _app_getnetworkapp (lpnmlv->nmcd.lItemlParam); // initialize + PITEM_NETWORK ptr_network = _app_getnetworkitem (lpnmlv->nmcd.lItemlParam); + + if (ptr_network) + { + app_hash = ptr_network->app_hash; // initialize + is_validconnection = ptr_network->is_connection; + + _r_obj_dereference (ptr_network); + } } else if (listview_id == IDC_LOG) { @@ -619,7 +628,7 @@ LONG_PTR _app_nmcustdraw_listview (LPNMLVCUSTOMDRAW lpnmlv) if (app_hash) { - COLORREF new_clr = _app_getappcolor (listview_id, app_hash); + COLORREF new_clr = _app_getappcolor (listview_id, app_hash, is_validconnection); if (new_clr) { diff --git a/src/profile.cpp b/src/profile.cpp index ec57c0d7..b7d941b7 100644 --- a/src/profile.cpp +++ b/src/profile.cpp @@ -335,7 +335,7 @@ SIZE_T _app_getlogapp (SIZE_T idx) return 0; } -COLORREF _app_getappcolor (INT listview_id, SIZE_T app_hash) +COLORREF _app_getappcolor (INT listview_id, SIZE_T app_hash, BOOLEAN is_validconnection) { PITEM_APP ptr_app = _app_getappitem (app_hash); @@ -354,7 +354,7 @@ COLORREF _app_getappcolor (INT listview_id, SIZE_T app_hash) else if (_r_config_getboolean (L"IsHighlightTimer", TRUE, L"colors") && _app_istimeractive (ptr_app)) colorValue = L"ColorTimer"; - else if (!is_networklist && !ptr_app->is_silent && _r_config_getboolean (L"IsHighlightConnection", TRUE, L"colors") && _app_isapphaveconnection (app_hash)) + else if (!ptr_app->is_silent && _r_config_getboolean (L"IsHighlightConnection", TRUE, L"colors") && ((is_networklist && is_validconnection) || (!is_networklist && _app_isapphaveconnection (app_hash)))) colorValue = L"ColorConnection"; else if (_r_config_getboolean (L"IsHighlightSigned", TRUE, L"colors") && !ptr_app->is_silent && _r_config_getboolean (L"IsCertificatesEnabled", FALSE) && ptr_app->is_signed) diff --git a/src/profile.hpp b/src/profile.hpp index 6ef48262..43b411bd 100644 --- a/src/profile.hpp +++ b/src/profile.hpp @@ -16,7 +16,7 @@ PITEM_NETWORK _app_getnetworkitem (SIZE_T network_hash); SIZE_T _app_getnetworkapp (SIZE_T network_hash); PITEM_LOG _app_getlogitem (SIZE_T idx); SIZE_T _app_getlogapp (SIZE_T idx); -COLORREF _app_getappcolor (INT listview_id, SIZE_T app_hash); +COLORREF _app_getappcolor (INT listview_id, SIZE_T app_hash, BOOLEAN is_validconnection); VOID _app_freeapplication (SIZE_T app_hash);