From 7f8b0c98246e9a76b60c7e35765ba708cc1e40c5 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Mon, 27 Mar 2023 21:21:26 +0300 Subject: fixes #3465 (broken Profile Manager's UI) --- include/m_gui.h | 5 +++++ libs/win32/mir_core.lib | Bin 490770 -> 491056 bytes libs/win64/mir_core.lib | Bin 495950 -> 496242 bytes src/mir_app/src/profilemanager.cpp | 1 + src/mir_core/src/Windows/CCtrlPages.cpp | 2 +- src/mir_core/src/mir_core.def | 1 + src/mir_core/src/mir_core64.def | 1 + 7 files changed, 9 insertions(+), 1 deletion(-) diff --git a/include/m_gui.h b/include/m_gui.h index 60d4dc2933..17b544ef61 100644 --- a/include/m_gui.h +++ b/include/m_gui.h @@ -1413,6 +1413,7 @@ class MIR_CORE_EXPORT CCtrlPages : public CCtrlBase HIMAGELIST m_hIml; CDlgBase *m_pActivePage; int m_numRows = 1; + bool m_bOwnPages = false; struct TPageInfo; void InsertPage(TPageInfo *pPage); @@ -1439,6 +1440,10 @@ public: { return m_pActivePage; } + __forceinline void SetPageOwner() + { m_bOwnPages = true; + } + protected: BOOL OnNotify(int idCtrl, NMHDR *pnmh) override; diff --git a/libs/win32/mir_core.lib b/libs/win32/mir_core.lib index 64bac7249c..d9dbb534ec 100644 Binary files a/libs/win32/mir_core.lib and b/libs/win32/mir_core.lib differ diff --git a/libs/win64/mir_core.lib b/libs/win64/mir_core.lib index 2b27d2acd6..48b6a8c9a0 100644 Binary files a/libs/win64/mir_core.lib and b/libs/win64/mir_core.lib differ diff --git a/src/mir_app/src/profilemanager.cpp b/src/mir_app/src/profilemanager.cpp index b2ea141b6c..ab7f00edf0 100644 --- a/src/mir_app/src/profilemanager.cpp +++ b/src/mir_app/src/profilemanager.cpp @@ -586,6 +586,7 @@ public: { m_chkSmEnabled.OnChange = Callback(this, &CProfileManager::onChanged); + m_tab.SetPageOwner(); m_tab.AddPage(LPGENW("My profiles"), nullptr, new CChooseProfileDlg(m_btnOk, m_pd)); m_tab.AddPage(LPGENW("New profile"), nullptr, new CCreateProfileDlg(m_btnOk, m_pd)); } diff --git a/src/mir_core/src/Windows/CCtrlPages.cpp b/src/mir_core/src/Windows/CCtrlPages.cpp index 11f78c1b21..8d7e120f13 100644 --- a/src/mir_core/src/Windows/CCtrlPages.cpp +++ b/src/mir_core/src/Windows/CCtrlPages.cpp @@ -266,7 +266,7 @@ void CCtrlPages::RemovePage(int iPage) void CCtrlPages::ShowPage(CDlgBase *pDlg) { if (pDlg->GetHwnd() == nullptr) { - pDlg->SetParent(GetParent()->GetHwnd()); + pDlg->SetParent(m_bOwnPages ? m_hwnd : GetParent()->GetHwnd()); pDlg->Create(); RECT rc; diff --git a/src/mir_core/src/mir_core.def b/src/mir_core/src/mir_core.def index 677bf03c83..3410eda604 100644 --- a/src/mir_core/src/mir_core.def +++ b/src/mir_core/src/mir_core.def @@ -1550,3 +1550,4 @@ _Utils_CorrectFontSize@4 @1762 NONAME db_event_replace @1771 db_event_updateId @1772 ?db_get_usm@@YG?AV?$CMStringT@DV?$ChTraitsCRT@D@@@@IPBD00@Z @1773 NONAME +?SetPageOwner@CCtrlPages@@QAEXXZ @1774 NONAME diff --git a/src/mir_core/src/mir_core64.def b/src/mir_core/src/mir_core64.def index 4aace13f6e..d1afc89380 100644 --- a/src/mir_core/src/mir_core64.def +++ b/src/mir_core/src/mir_core64.def @@ -1550,3 +1550,4 @@ Utils_CorrectFontSize @1762 NONAME db_event_replace @1771 db_event_updateId @1772 ?db_get_usm@@YA?AV?$CMStringT@DV?$ChTraitsCRT@D@@@@IPEBD00@Z @1773 NONAME +?SetPageOwner@CCtrlPages@@QEAAXXZ @1774 NONAME -- cgit v1.2.3