diff options
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/StatusManager/src/AdvancedAutoAway/advancedautoaway.cpp | 58 | ||||
| -rw-r--r-- | plugins/StatusManager/src/KeepStatus/keepstatus.cpp | 87 | ||||
| -rw-r--r-- | plugins/StatusManager/src/StartupStatus/startupstatus.cpp | 25 | ||||
| -rw-r--r-- | plugins/StatusManager/src/commonstatus.cpp | 29 | ||||
| -rw-r--r-- | plugins/StatusManager/src/commonstatus.h | 23 | ||||
| -rw-r--r-- | plugins/StatusManager/src/confirmdialog.cpp | 3 | ||||
| -rw-r--r-- | plugins/StatusManager/src/version.h | 2 | 
7 files changed, 99 insertions, 128 deletions
| diff --git a/plugins/StatusManager/src/AdvancedAutoAway/advancedautoaway.cpp b/plugins/StatusManager/src/AdvancedAutoAway/advancedautoaway.cpp index 3f638f22db..80f3d8be37 100644 --- a/plugins/StatusManager/src/AdvancedAutoAway/advancedautoaway.cpp +++ b/plugins/StatusManager/src/AdvancedAutoAway/advancedautoaway.cpp @@ -144,15 +144,14 @@ static int ProcessProtoAck(WPARAM, LPARAM lParam)  		return 0;  	log_debugA("ProcessProtoAck: ack->szModule: %s", ack->szModule); -	for (int i = 0; i < protoList.getCount(); i++) { -		SMProto &p = protoList[i]; -		log_debugA("chk: %s", p.m_szName); -		if (!mir_strcmp(p.m_szName, ack->szModule)) { -			log_debugA("ack->szModule: %s p.statusChanged: %d", ack->szModule, p.statusChanged); -			if (!p.statusChanged) -				p.mStatus = TRUE; - -			p.statusChanged = FALSE; +	for (auto &it : protoList) { +		log_debugA("chk: %s", it->m_szName); +		if (!mir_strcmp(it->m_szName, ack->szModule)) { +			log_debugA("ack->szModule: %s p.statusChanged: %d", ack->szModule, it->bStatusChanged); +			if (!it->bStatusChanged) +				it->bManualStatus = true; + +			it->bStatusChanged = false;  		}  	} @@ -184,15 +183,15 @@ static int changeState(SMProto &setting, STATES newState)  	log_debugA("%s state change: %s -> %s", setting.m_szName, status2descr(setting.oldState), status2descr(setting.curState)); -	if (setting.curState != SET_ORGSTATUS && setting.curState != ACTIVE && setting.statusChanged) { +	if (setting.curState != SET_ORGSTATUS && setting.curState != ACTIVE && setting.bStatusChanged) {  		/* change the awaymessage */  		if (setting.m_szMsg != nullptr) {  			mir_free(setting.m_szMsg);  			setting.m_szMsg = nullptr;  		} -		if (db_get_b(0, AAAMODULENAME, StatusModeToDbSetting(setting.m_status, SETTING_MSGCUSTOM), FALSE)) -			setting.m_szMsg = db_get_wsa(0, AAAMODULENAME, StatusModeToDbSetting(setting.m_status, SETTING_STATUSMSG)); +		if (db_get_b(0, AAAMODULENAME, StatusModeToDbSetting(setting.aaaStatus, SETTING_MSGCUSTOM), FALSE)) +			setting.m_szMsg = db_get_wsa(0, AAAMODULENAME, StatusModeToDbSetting(setting.aaaStatus, SETTING_STATUSMSG));  	}  	else if (setting.m_szMsg != nullptr) {  		mir_free(setting.m_szMsg); @@ -208,7 +207,7 @@ static VOID CALLBACK AutoAwayTimer(HWND, UINT, UINT_PTR, DWORD)  	int confirm = FALSE;  	for (auto &it : protoList) { -		it->m_status = ID_STATUS_DISABLED; +		it->aaaStatus = ID_STATUS_DISABLED;  		BOOL bTrigger = false; @@ -237,17 +236,17 @@ static VOID CALLBACK AutoAwayTimer(HWND, UINT, UINT_PTR, DWORD)  			if (((mouseStationaryTimer >= sts1Time && (it->optionFlags & FLAG_ONMOUSE)) || bTrigger) && currentMode != it->lv1Status && it->statusFlags&StatusModeToProtoFlag(currentMode)) {  				/* from ACTIVE to STATUS1_SET */  				it->m_lastStatus = it->originalStatusMode = CallProtoService(it->m_szName, PS_GETSTATUS, 0, 0); -				it->m_status = it->lv1Status; +				it->aaaStatus = it->lv1Status;  				it->sts1setTimer = GetTickCount();  				sts1setTime = 0; -				it->statusChanged = statusChanged = TRUE; +				it->bStatusChanged = statusChanged = true;  				changeState(*it, STATUS1_SET);  			}  			else if (mouseStationaryTimer >= sts2Time && currentMode == it->lv1Status && currentMode != it->lv2Status && (it->optionFlags & FLAG_SETNA) && (it->statusFlags & StatusModeToProtoFlag(currentMode))) {  				/* from ACTIVE to STATUS2_SET */  				it->m_lastStatus = it->originalStatusMode = CallProtoService(it->m_szName, PS_GETSTATUS, 0, 0); -				it->m_status = it->lv2Status; -				it->statusChanged = statusChanged = TRUE; +				it->aaaStatus = it->lv2Status; +				it->bStatusChanged = statusChanged = true;  				changeState(*it, STATUS2_SET);  			}  		} @@ -268,8 +267,8 @@ static VOID CALLBACK AutoAwayTimer(HWND, UINT, UINT_PTR, DWORD)  				/* when set STATUS2, currentMode doesn't have to be in the selected status list (statusFlags) */  				/* from STATUS1_SET to STATUS2_SET */  				it->m_lastStatus = CallProtoService(it->m_szName, PS_GETSTATUS, 0, 0); -				it->m_status = it->lv2Status; -				it->statusChanged = statusChanged = TRUE; +				it->aaaStatus = it->lv2Status; +				it->bStatusChanged = statusChanged = true;  				changeState(*it, STATUS2_SET);  			}  		} @@ -288,40 +287,39 @@ static VOID CALLBACK AutoAwayTimer(HWND, UINT, UINT_PTR, DWORD)  		}  		if (it->curState == HIDDEN_ACTIVE) { -			if (it->mStatus) { +			if (it->bManualStatus) {  				/* HIDDEN_ACTIVE to ACTIVE */ -				//it->statusChanged = FALSE; +				// it->bStatusChanged = false;  				changeState(*it, ACTIVE);  				it->sts1setTimer = 0; -				it->mStatus = FALSE; +				it->bManualStatus = false;  			}  			else if ((it->optionFlags & FLAG_SETNA) && currentMode == it->lv1Status &&  				currentMode != it->lv2Status && (it->statusFlags & StatusModeToProtoFlag(currentMode)) &&  				(mouseStationaryTimer >= sts2Time || (sts1setTime >= sts2Time && !(it->optionFlags & FLAG_LV2ONINACTIVE)))) {  				/* HIDDEN_ACTIVE to STATUS2_SET */  				it->m_lastStatus = it->originalStatusMode = CallProtoService(it->m_szName, PS_GETSTATUS, 0, 0); -				it->m_status = it->lv2Status; -				it->statusChanged = statusChanged = TRUE; +				it->aaaStatus = it->lv2Status; +				it->bStatusChanged = statusChanged = true;  				changeState(*it, STATUS2_SET);  			}  		}  		if (it->curState == SET_ORGSTATUS) {  			/* SET_ORGSTATUS to ACTIVE */  			it->m_lastStatus = CallProtoService(it->m_szName, PS_GETSTATUS, 0, 0); -			it->m_status = it->originalStatusMode; +			it->aaaStatus = it->originalStatusMode;  			confirm = (it->optionFlags & FLAG_CONFIRM) ? TRUE : confirm; -			it->statusChanged = statusChanged = TRUE; +			it->bStatusChanged = statusChanged = true;  			changeState(*it, ACTIVE);  			it->sts1setTimer = 0;  		} -		it->mStatus = FALSE; +		it->bManualStatus = false;  	}  	if (confirm || statusChanged) { -		TProtoSettings ps = protoList; +		TProtoSettings ps = protoList; // make a copy of data not to pollute main array  		for (auto &it : ps) -			if (it->m_status == ID_STATUS_DISABLED) -				it->m_szName = ""; +			it->m_status = it->aaaStatus;  		if (confirm)  			confirmDialog = ShowConfirmDialogEx(&ps, db_get_w(0, AAAMODULENAME, SETTING_CONFIRMDELAY, 5)); diff --git a/plugins/StatusManager/src/KeepStatus/keepstatus.cpp b/plugins/StatusManager/src/KeepStatus/keepstatus.cpp index 42e715a262..ceb12f56d4 100644 --- a/plugins/StatusManager/src/KeepStatus/keepstatus.cpp +++ b/plugins/StatusManager/src/KeepStatus/keepstatus.cpp @@ -127,41 +127,6 @@ int KSLoadOptions()  ///////////////////////////////////////////////////////////////////////////////////////// -static PROTOCOLSETTINGEX** GetCurrentProtoSettingsCopy() -{ -	mir_cslock lck(GenStatusCS); -	PROTOCOLSETTINGEX **ps = (PROTOCOLSETTINGEX**)mir_alloc(protoList.getCount() * sizeof(PROTOCOLSETTINGEX *)); -	if (ps == nullptr) -		return nullptr; - -	for (int i = 0; i < protoList.getCount(); i++) { -		ps[i] = (PROTOCOLSETTINGEX*)mir_calloc(sizeof(PROTOCOLSETTINGEX)); -		if (ps[i] == nullptr) { -			mir_free(ps); -			return nullptr; -		} - -		SMProto &cs = protoList[i]; -		ps[i]->m_lastStatus = cs.m_lastStatus; -		ps[i]->m_status = cs.m_status; -		ps[i]->m_szMsg = nullptr; -		ps[i]->m_szName = cs.m_szName; -		ps[i]->m_tszAccName = cs.m_tszAccName; -	} - -	return ps; -} - -static void FreeProtoSettings(PROTOCOLSETTINGEX** ps) -{ -	for (int i = 0; i < protoList.getCount(); i++) { -		if (ps[i]->m_szMsg != nullptr) -			mir_free(ps[i]->m_szMsg); -		mir_free(ps[i]); -	} -	mir_free(ps); -} -  int SMProto::AssignStatus(int iStatus, int iLastStatus, wchar_t *pwszMsg)  {  	if (iStatus < MIN_STATUS || iStatus > MAX_STATUS) @@ -214,29 +179,27 @@ int SMProto::GetStatus() const  static int SetCurrentStatus()  { -	PROTOCOLSETTINGEX **ps = GetCurrentProtoSettingsCopy(); -	for (int i = 0; i < protoList.getCount(); i++) { -		auto p = ps[i]; +	TProtoSettings ps(protoList); +	for (auto &p : ps) {  		int realStatus = CallProtoService(p->m_szName, PS_GETSTATUS, 0, 0); -		int curStatus = protoList[i].GetStatus(); -		if (curStatus == ID_STATUS_DISABLED || curStatus == realStatus) { // ignore this proto by removing it's name (not so nice) -			p->m_szName = ""; +		int curStatus = p->GetStatus(); +		if (curStatus == ID_STATUS_DISABLED) +			continue; +		if (curStatus == realStatus) { +			p->m_status = ID_STATUS_DISABLED; +			continue;  		} -		else { -			log_infoA("KeepStatus: status for %s differs: stored = %d, real = %d", p->m_szName, curStatus, realStatus); -			// force offline before reconnecting? -			if (realStatus != ID_STATUS_OFFLINE && db_get_b(0, KSMODULENAME, SETTING_FIRSTOFFLINE, FALSE)) { -				log_infoA("KeepStatus: Setting %s offline before making a new connection attempt", p->m_szName); -				CallProtoService(p->m_szName, PS_SETSTATUS, (WPARAM)ID_STATUS_OFFLINE, 0); -			} +		log_infoA("KeepStatus: status for %s differs: stored = %d, real = %d", p->m_szName, curStatus, realStatus); + +		// force offline before reconnecting? +		if (realStatus != ID_STATUS_OFFLINE && db_get_b(0, KSMODULENAME, SETTING_FIRSTOFFLINE, FALSE)) { +			log_infoA("KeepStatus: Setting %s offline before making a new connection attempt", p->m_szName); +			CallProtoService(p->m_szName, PS_SETSTATUS, (WPARAM)ID_STATUS_OFFLINE, 0);  		}  	} -	ProcessPopup(KS_CONN_STATE_RETRY, (LPARAM)ps); -	INT_PTR ret = CallService(MS_CS_SETSTATUSEX, (WPARAM)&ps, 0); -	FreeProtoSettings(ps); - -	return ret; +	ProcessPopup(KS_CONN_STATE_RETRY, (LPARAM)ps.getArray()); +	return CallService(MS_CS_SETSTATUSEX, (WPARAM)ps.getArray(), 0);  }  static int StatusChange(WPARAM wParam, LPARAM lParam) @@ -1038,7 +1001,7 @@ INT_PTR AnnounceStatusChangeService(WPARAM, LPARAM lParam)  static DWORD CALLBACK MessageWndProc(HWND, UINT msg, WPARAM wParam, LPARAM lParam)  { -	static PROTOCOLSETTINGEX** ps = nullptr; +	static TProtoSettings *ps = nullptr;  	switch (msg) {  	case WM_POWERBROADCAST: @@ -1046,23 +1009,23 @@ static DWORD CALLBACK MessageWndProc(HWND, UINT msg, WPARAM wParam, LPARAM lPara  		case PBT_APMSUSPEND:  			log_infoA("KeepStatus: suspend state detected: %08X %08X", wParam, lParam);  			if (ps == nullptr) { -				ps = GetCurrentProtoSettingsCopy(); -				for (int i = 0; i < protoList.getCount(); i++) -					EnableProtocolService(0, (LPARAM)ps[i]->m_szName); +				ps = new TProtoSettings(protoList); +				for (auto &it : *ps) +					EnableProtocolService(0, (LPARAM)it->m_szName);  				// set proto's offline, the clist will not try to reconnect in that case  				Clist_SetStatusMode(ID_STATUS_OFFLINE);  			}  			break; -			//case PBT_APMRESUMEAUTOMATIC: ?  		case PBT_APMRESUMESUSPEND:  		case PBT_APMRESUMECRITICAL: +		// case PBT_APMRESUMEAUTOMATIC: ?  			log_infoA("KeepStatus: resume from suspend state");  			if (ps != nullptr) { -				for (int i = 0; i < protoList.getCount(); i++) -					protoList[i].AssignStatus(ps[i]->m_status, ps[i]->m_lastStatus, ps[i]->m_szMsg); -				FreeProtoSettings(ps); +				for (auto &it : *ps) +					it->AssignStatus(it->m_status, it->m_lastStatus, it->m_szMsg); +				delete ps;  				ps = nullptr;  			}  			StartTimer(IDT_PROCESSACK, 0, FALSE); @@ -1072,7 +1035,7 @@ static DWORD CALLBACK MessageWndProc(HWND, UINT msg, WPARAM wParam, LPARAM lPara  	case WM_DESTROY:  		if (ps != nullptr) { -			FreeProtoSettings(ps); +			delete ps;  			ps = nullptr;  		}  		break; diff --git a/plugins/StatusManager/src/StartupStatus/startupstatus.cpp b/plugins/StatusManager/src/StartupStatus/startupstatus.cpp index 0c44c09a9c..ab82c229db 100644 --- a/plugins/StatusManager/src/StartupStatus/startupstatus.cpp +++ b/plugins/StatusManager/src/StartupStatus/startupstatus.cpp @@ -38,7 +38,7 @@ static BYTE showDialogOnStartup = 0;  static PROTOCOLSETTINGEX* IsValidProtocol(TProtoSettings &protoSettings, const char *protoName)  {  	for (auto &it : protoSettings) -		if (!strncmp(it->m_szName, protoName, mir_strlen(it->m_szName))) +		if (!it->ssDisabled && !strncmp(it->m_szName, protoName, mir_strlen(it->m_szName)))  			return it;  	return nullptr; @@ -143,7 +143,7 @@ static int ProcessProtoAck(WPARAM, LPARAM lParam)  	for (auto &it : protoList) {  		if (!mir_strcmp(ack->szModule, it->m_szName)) { -			it->m_szName = ""; +			it->ssDisabled = true;  			log_debugA("StartupStatus: %s overridden by ME_PROTO_ACK, status will not be set", ack->szModule);  		}  	} @@ -160,14 +160,14 @@ static int StatusChange(WPARAM, LPARAM lParam)  	char *szProto = (char *)lParam;  	if (szProto == nullptr) { // global status change  		for (auto &it : protoList) { -			it->m_szName = ""; +			it->ssDisabled = true;  			log_debugA("StartupStatus: all protos overridden by ME_CLIST_STATUSMODECHANGE, status will not be set");  		}  	}  	else {  		for (auto &it : protoList) {  			if (!mir_strcmp(it->m_szName, szProto)) { -				it->m_szName = ""; +				it->ssDisabled = true;  				log_debugA("StartupStatus: %s overridden by ME_CLIST_STATUSMODECHANGE, status will not be set", szProto);  			}  		} @@ -188,14 +188,13 @@ static int CSStatusChangeEx(WPARAM wParam, LPARAM)  			return -1;  		for (int i = 0; i < protoList.getCount(); i++) { -			for (int j = 0; j < protoList.getCount(); j++) { -				if (ps[i]->m_szName == nullptr || protoList[j].m_szName == nullptr) +			for (auto &it : protoList) { +				if (ps[i]->m_szName == nullptr || it->m_szName == nullptr)  					continue; -				if (!mir_strcmp(ps[i]->m_szName, protoList[j].m_szName)) { +				if (!mir_strcmp(ps[i]->m_szName, it->m_szName)) {  					log_debugA("StartupStatus: %s overridden by MS_CS_SETSTATUSEX, status will not be set", ps[i]->m_szName); -					// use a hack to disable this proto -					protoList[j].m_szName = ""; +					it->ssDisabled = true;  				}  			}  		} @@ -210,7 +209,13 @@ static void CALLBACK SetStatusTimed(HWND, UINT, UINT_PTR, DWORD)  	UnhookEvent(hProtoAckHook);  	UnhookEvent(hCSStatusChangeHook);  	UnhookEvent(hStatusChangeHook); -	CallService(MS_CS_SETSTATUSEX, (WPARAM)&protoList, 0); + +	TProtoSettings ps(protoList); +	for (auto &it : ps) +		if (it->ssDisabled) +			it->m_status = ID_STATUS_DISABLED; + +	CallService(MS_CS_SETSTATUSEX, (WPARAM)ps.getArray(), 0);  }  static int OnOkToExit(WPARAM, LPARAM) diff --git a/plugins/StatusManager/src/commonstatus.cpp b/plugins/StatusManager/src/commonstatus.cpp index 6355cc9839..a0e7e0f7a4 100644 --- a/plugins/StatusManager/src/commonstatus.cpp +++ b/plugins/StatusManager/src/commonstatus.cpp @@ -233,38 +233,41 @@ INT_PTR SetStatusEx(WPARAM wParam, LPARAM)  	// set all status messages first  	for (int i = 0; i < protoList.getCount(); i++) { -		char *szProto = protoSettings[i]->m_szName; -		if (!Proto_GetAccount(szProto)) { -			log_debugA("CommonStatus: %s is not loaded", szProto); +		PROTOCOLSETTINGEX *p = protoSettings[i]; +		if (p->m_status == ID_STATUS_DISABLED) +			continue; + +		if (!Proto_GetAccount(p->m_szName)) { +			log_debugA("CommonStatus: %s is not loaded", p->m_szName);  			continue;  		}  		// some checks  		int newstatus = GetActualStatus(protoSettings[i]);  		if (newstatus == 0) { -			log_debugA("CommonStatus: incorrect status for %s (%d)", szProto, protoSettings[i]->m_status); +			log_debugA("CommonStatus: incorrect status for %s (%d)", p->m_szName, p->m_status);  			continue;  		} -		int oldstatus = CallProtoService(szProto, PS_GETSTATUS, 0, 0); +		int oldstatus = CallProtoService(p->m_szName, PS_GETSTATUS, 0, 0);  		// set last status -		protoSettings[i]->m_lastStatus = oldstatus; +		p->m_lastStatus = oldstatus;  		if (IsStatusConnecting(oldstatus)) {  			// ignore if connecting, but it didn't came this far if it did -			log_debugA("CommonStatus: %s is already connecting", szProto); +			log_debugA("CommonStatus: %s is already connecting", p->m_szName);  			continue;  		}  		// status checks  		long protoFlag = Proto_Status2Flag(newstatus); -		int b_Caps2 = CallProtoService(szProto, PS_GETCAPS, PFLAGNUM_2, 0) & protoFlag; -		int b_Caps5 = CallProtoService(szProto, PS_GETCAPS, PFLAGNUM_5, 0) & protoFlag; +		int b_Caps2 = CallProtoService(p->m_szName, PS_GETCAPS, PFLAGNUM_2, 0) & protoFlag; +		int b_Caps5 = CallProtoService(p->m_szName, PS_GETCAPS, PFLAGNUM_5, 0) & protoFlag;  		if (newstatus != ID_STATUS_OFFLINE && (!b_Caps2 || b_Caps5)) {  			// status and status message for this status not supported  			//log_debug("CommonStatus: status not supported %s", szProto);  			continue;  		} -		int b_Caps1 = CallProtoService(szProto, PS_GETCAPS, PFLAGNUM_1, 0) & PF1_MODEMSGSEND & ~PF1_INDIVMODEMSG; -		int b_Caps3 = CallProtoService(szProto, PS_GETCAPS, PFLAGNUM_3, 0) & protoFlag; +		int b_Caps1 = CallProtoService(p->m_szName, PS_GETCAPS, PFLAGNUM_1, 0) & PF1_MODEMSGSEND & ~PF1_INDIVMODEMSG; +		int b_Caps3 = CallProtoService(p->m_szName, PS_GETCAPS, PFLAGNUM_3, 0) & protoFlag;  		if (newstatus == oldstatus && (!b_Caps1 || !b_Caps3)) {  			// no status change and status messages are not supported  			//log_debug("CommonStatus: no change, %s (%d %d)", szProto, oldstatus, newstatus); @@ -277,8 +280,8 @@ INT_PTR SetStatusEx(WPARAM wParam, LPARAM)  		// set the status  		if (newstatus != oldstatus /*&& !(b_Caps1 && b_Caps3 && ServiceExists(MS_NAS_SETSTATE))*/) { -			log_debugA("CommonStatus sets status for %s to %d", szProto, newstatus); -			CallProtoService(szProto, PS_SETSTATUS, newstatus, 0); +			log_debugA("CommonStatus sets status for %s to %d", p->m_szName, newstatus); +			CallProtoService(p->m_szName, PS_SETSTATUS, newstatus, 0);  		}  	} diff --git a/plugins/StatusManager/src/commonstatus.h b/plugins/StatusManager/src/commonstatus.h index 488d28bfb6..ee9fa8b128 100644 --- a/plugins/StatusManager/src/commonstatus.h +++ b/plugins/StatusManager/src/commonstatus.h @@ -106,17 +106,15 @@ struct SMProto : public PROTOCOLSETTINGEX, public MZeroedObject  	// AdvancedAutoAway settings  	int originalStatusMode = ID_STATUS_CURRENT; -	STATES -		oldState, -		curState = ACTIVE; -	BOOL statusChanged; // AAA changed the status, don't update mStatus -	BOOL mStatus; // status changed manually or not ? -	int optionFlags, // db: see above -		awayTime, // db: time to wait for inactivity -		naTime, // db: time to wait after away is set -		statusFlags; // db: set lv1 status if this is original status -	WORD lv1Status, // db -		lv2Status; // db +	int aaaStatus; +	STATES oldState, curState = ACTIVE; +	bool bStatusChanged; // AAA changed the status, don't update bManualStatus +	bool bManualStatus; // status changed manually or not ? +	int  optionFlags; // db: see above +	int  awayTime; // db: time to wait for inactivity +	int  naTime; // db: time to wait after away is set +	int  statusFlags; // db: set lv1 status if this is original status +	WORD lv1Status, lv2Status; // db: statuses to switch protocol to  	unsigned int sts1setTimer;  	// KeepStatus @@ -124,6 +122,9 @@ struct SMProto : public PROTOCOLSETTINGEX, public MZeroedObject  	int GetStatus() const;  	int lastStatusAckTime; // the time the last status ack was received + +	// StartupStatus +	bool ssDisabled;  // prohibits status restoration at startup  };  struct TProtoSettings : public OBJLIST<SMProto> diff --git a/plugins/StatusManager/src/confirmdialog.cpp b/plugins/StatusManager/src/confirmdialog.cpp index 5cdcf88237..2c7c386ff7 100644 --- a/plugins/StatusManager/src/confirmdialog.cpp +++ b/plugins/StatusManager/src/confirmdialog.cpp @@ -403,7 +403,8 @@ HWND ShowConfirmDialogEx(TProtoSettings *params, int _timeout)  	confirmSettings = new OBJLIST<TConfirmSetting>(10, CompareSettings);  	for (auto &it : *params) -		confirmSettings->insert(new TConfirmSetting(*it)); +		if (it->m_status != ID_STATUS_DISABLED) +			confirmSettings->insert(new TConfirmSetting(*it));  	timeOut = _timeout;  	if (timeOut < 0) diff --git a/plugins/StatusManager/src/version.h b/plugins/StatusManager/src/version.h index 50de31c953..45db33e0dc 100644 --- a/plugins/StatusManager/src/version.h +++ b/plugins/StatusManager/src/version.h @@ -2,7 +2,7 @@  #define __MAJOR_VERSION          1  #define __MINOR_VERSION          1  #define __RELEASE_NUM            0 -#define __BUILD_NUM              3 +#define __BUILD_NUM              4  // other stuff for Version resource  #include <stdver.h> | 
