From b8c8df44a68fe62575e46278ba10da3f91c60517 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sat, 27 Feb 2021 17:12:48 +0300 Subject: fixes #2753 (by default only checkboxes should be notified about OnChange before OnInitDialog) --- include/m_gui.h | 2 +- plugins/Scriver/src/msgdialog.cpp | 6 ------ plugins/TabSRMM/src/msgoptions.cpp | 3 --- src/core/stdaway/src/sendmsg.cpp | 3 --- src/core/stdmsg/src/msgdialog.cpp | 6 ------ src/mir_core/src/CCtrlCheck.cpp | 4 +++- src/mir_core/src/CDlgBase.cpp | 3 ++- 7 files changed, 6 insertions(+), 21 deletions(-) diff --git a/include/m_gui.h b/include/m_gui.h index 0489543619..972821ab32 100644 --- a/include/m_gui.h +++ b/include/m_gui.h @@ -515,7 +515,7 @@ protected: HWND m_hwnd = nullptr; // must be the first data item int m_idCtrl; CDlgBase* m_parentWnd; - bool m_bChanged = false, m_bSilent = false, m_bUseSystemColors = false; + bool m_bChanged = false, m_bSilent = false, m_bUseSystemColors = false, m_bNotifiable = false; public: CCallback OnChange; diff --git a/plugins/Scriver/src/msgdialog.cpp b/plugins/Scriver/src/msgdialog.cpp index 814ef6b5c8..0ec935f177 100644 --- a/plugins/Scriver/src/msgdialog.cpp +++ b/plugins/Scriver/src/msgdialog.cpp @@ -576,9 +576,6 @@ void CMsgDialog::onClick_Filter(CCtrlButton *pButton) void CMsgDialog::onChange_SplitterX(CSplitter *pSplitter) { - if (!m_bInitialized) - return; - RECT rc; GetClientRect(m_hwnd, &rc); @@ -591,9 +588,6 @@ void CMsgDialog::onChange_SplitterX(CSplitter *pSplitter) void CMsgDialog::onChange_SplitterY(CSplitter *pSplitter) { - if (!m_bInitialized) - return; - RECT rc; GetClientRect(m_hwnd, &rc); m_pParent->iSplitterY = rc.bottom - pSplitter->GetPos(); diff --git a/plugins/TabSRMM/src/msgoptions.cpp b/plugins/TabSRMM/src/msgoptions.cpp index 86f411ecaf..28aaf2a4b9 100644 --- a/plugins/TabSRMM/src/msgoptions.cpp +++ b/plugins/TabSRMM/src/msgoptions.cpp @@ -688,9 +688,6 @@ public: void onChange_Text(CCtrlEdit *) { - if (!m_bInitialized) - return; - if (!selchanging) { changed = TRUE; updateInfo[inEdit] = TRUE; diff --git a/src/core/stdaway/src/sendmsg.cpp b/src/core/stdaway/src/sendmsg.cpp index c5ba002a3d..0f3c6032de 100644 --- a/src/core/stdaway/src/sendmsg.cpp +++ b/src/core/stdaway/src/sendmsg.cpp @@ -250,9 +250,6 @@ public: void onChange_Msg(CCtrlEdit *) { - if (!m_bInitialized) - return; - if (m_countdown >= 0) { m_timer.Stop(); m_btnOk.SetText(TranslateT("OK")); diff --git a/src/core/stdmsg/src/msgdialog.cpp b/src/core/stdmsg/src/msgdialog.cpp index db94642259..74433f6cde 100644 --- a/src/core/stdmsg/src/msgdialog.cpp +++ b/src/core/stdmsg/src/msgdialog.cpp @@ -1371,9 +1371,6 @@ void CMsgDialog::OnOptionsApplied(bool bUpdateAvatar) void CMsgDialog::onSplitterX(CSplitter *pSplitter) { - if (!m_bInitialized) - return; - RECT rc; GetClientRect(m_hwnd, &rc); @@ -1387,9 +1384,6 @@ void CMsgDialog::onSplitterX(CSplitter *pSplitter) void CMsgDialog::onSplitterY(CSplitter *pSplitter) { - if (!m_bInitialized) - return; - RECT rc; GetClientRect(m_hwnd, &rc); diff --git a/src/mir_core/src/CCtrlCheck.cpp b/src/mir_core/src/CCtrlCheck.cpp index a20a1a9275..210c6a1d03 100644 --- a/src/mir_core/src/CCtrlCheck.cpp +++ b/src/mir_core/src/CCtrlCheck.cpp @@ -27,7 +27,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. CCtrlCheck::CCtrlCheck(CDlgBase *dlg, int ctrlId) : CCtrlData(dlg, ctrlId) -{} +{ + m_bNotifiable = true; +} BOOL CCtrlCheck::OnCommand(HWND, WORD, WORD) { diff --git a/src/mir_core/src/CDlgBase.cpp b/src/mir_core/src/CDlgBase.cpp index dcfe15b292..95449c56a0 100644 --- a/src/mir_core/src/CDlgBase.cpp +++ b/src/mir_core/src/CDlgBase.cpp @@ -219,7 +219,8 @@ INT_PTR CDlgBase::DlgProc(UINT msg, WPARAM wParam, LPARAM lParam) return FALSE; for (auto &it : m_controls) - it->OnChange(it); + if (it->m_bNotifiable) + it->OnChange(it); m_bInitialized = true; return TRUE; -- cgit v1.2.3