From bdf9b26bff9153bd5ee8fe186a370a4fbf33221a Mon Sep 17 00:00:00 2001
From: George Hazan <george.hazan@gmail.com>
Date: Sun, 14 Apr 2024 14:29:37 +0300
Subject: prevent CDlgBase from executing useless resize attempts

---
 src/mir_core/src/Windows/CDlgBase.cpp | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

(limited to 'src')

diff --git a/src/mir_core/src/Windows/CDlgBase.cpp b/src/mir_core/src/Windows/CDlgBase.cpp
index ac71f76d4e..40b762ced8 100644
--- a/src/mir_core/src/Windows/CDlgBase.cpp
+++ b/src/mir_core/src/Windows/CDlgBase.cpp
@@ -247,6 +247,8 @@ INT_PTR CDlgBase::DlgProc(UINT msg, WPARAM wParam, LPARAM lParam)
 		m_bInitialized = m_bSucceeded = false;
 		TranslateDialog_LP(m_hwnd, &m_pPlugin);
 
+		GetClientRect(m_hwnd, &m_rcPrev);
+
 		::EnumChildWindows(m_hwnd, &GlobalFieldEnum, LPARAM(this));
 
 		NotifyControls(&CCtrlBase::OnInit);
@@ -399,7 +401,12 @@ INT_PTR CDlgBase::DlgProc(UINT msg, WPARAM wParam, LPARAM lParam)
 		break;
 
 	case WM_SIZE:
-		OnResize();
+		RECT rc;
+		GetClientRect(m_hwnd, &rc);
+		if (memcmp(&m_rcPrev, &rc, sizeof(RECT))) {
+			OnResize();
+			m_rcPrev = rc;
+		}
 		return TRUE;
 
 	case WM_TIMER:
-- 
cgit v1.2.3