From 3d3a8bb209b190732f8530f3dc5b2baa46d3078e Mon Sep 17 00:00:00 2001 From: George Hazan Date: Wed, 19 Mar 2014 18:42:19 +0000 Subject: fix against recursions in clists git-svn-id: http://svn.miranda-ng.org/main/trunk@8664 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- src/modules/clist/clc.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'src/modules/clist/clc.cpp') diff --git a/src/modules/clist/clc.cpp b/src/modules/clist/clc.cpp index 0592f10ffb..7d44e89fc8 100644 --- a/src/modules/clist/clc.cpp +++ b/src/modules/clist/clc.cpp @@ -33,7 +33,7 @@ void UninitCustomMenus(void); void MTG_OnmodulesLoad(void); -static BOOL bModuleInitialized = FALSE; +static bool bModuleInitialized = false; static HANDLE hClcWindowList; static HANDLE hShowInfoTipEvent; HANDLE hHideInfoTipEvent; @@ -43,6 +43,12 @@ int g_IconWidth, g_IconHeight; void FreeDisplayNameCache(void); +void fnInitAutoRebuild(HWND hWnd) +{ + if (!cli.bAutoRebuild && hWnd) + cli.bAutoRebuild = PostMessage(hWnd, CLM_AUTOREBUILD, 0, 0) != 0; +} + void fnClcBroadcast(int msg, WPARAM wParam, LPARAM lParam) { WindowList_Broadcast(hClcWindowList, msg, wParam, lParam); @@ -208,7 +214,7 @@ static void SortClcByTimer(HWND hwnd) int LoadCLCModule(void) { - bModuleInitialized = TRUE; + bModuleInitialized = true; g_IconWidth = GetSystemMetrics(SM_CXSMICON); g_IconHeight = GetSystemMetrics(SM_CYSMICON); @@ -236,7 +242,8 @@ int LoadCLCModule(void) void UnloadClcModule() { - if (!bModuleInitialized) return; + if (!bModuleInitialized) + return; for (int i = 0; i < arEvents.getCount(); i++) UnhookEvent(arEvents[i]); @@ -442,7 +449,7 @@ LRESULT CALLBACK fnContactListControlWndProc(HWND hwnd, UINT msg, WPARAM wParam, break; case INTM_NAMEORDERCHANGED: - PostMessage(hwnd, CLM_AUTOREBUILD, 0, 0); + cli.pfnInitAutoRebuild(hwnd); break; case INTM_CONTACTADDED: -- cgit v1.2.3