diff options
author | George Hazan <ghazan@miranda.im> | 2023-03-22 17:50:33 +0300 |
---|---|---|
committer | George Hazan <ghazan@miranda.im> | 2023-03-22 17:50:33 +0300 |
commit | 8e6eec574c974340d503bf7db30bc47162574789 (patch) | |
tree | 5398f242496b3809c5b3e86ba125d8d8e9ac1431 | |
parent | ed54464972bcea62c617e1ade88722454b037ee0 (diff) |
more flicker reduction
-rw-r--r-- | src/core/stdmsg/src/msgdialog.cpp | 7 | ||||
-rw-r--r-- | src/mir_core/src/Windows/CCtrlPages.cpp | 27 |
2 files changed, 16 insertions, 18 deletions
diff --git a/src/core/stdmsg/src/msgdialog.cpp b/src/core/stdmsg/src/msgdialog.cpp index 8bc0d6cc3d..691afe4cc6 100644 --- a/src/core/stdmsg/src/msgdialog.cpp +++ b/src/core/stdmsg/src/msgdialog.cpp @@ -578,13 +578,8 @@ INT_PTR CMsgDialog::DlgProc(UINT uMsg, WPARAM wParam, LPARAM lParam) CSuper::DlgProc(uMsg, wParam, lParam); // call built-in resizer
SetButtonsPos();
- m_pLog->Resize();
- InvalidateRect(m_pOwner->m_hwndStatus, nullptr, true);
- RedrawWindow(m_message.GetHwnd(), nullptr, nullptr, RDW_INVALIDATE);
- RedrawWindow(m_btnOk.GetHwnd(), nullptr, nullptr, RDW_INVALIDATE);
- if (g_plugin.bShowAvatar && m_avatarPic)
- RedrawWindow(m_avatar.GetHwnd(), nullptr, nullptr, RDW_INVALIDATE);
+ InvalidateRect(m_pOwner->m_hwndStatus, nullptr, false);
}
return TRUE;
diff --git a/src/mir_core/src/Windows/CCtrlPages.cpp b/src/mir_core/src/Windows/CCtrlPages.cpp index 0f3c15e024..3af2d5667c 100644 --- a/src/mir_core/src/Windows/CCtrlPages.cpp +++ b/src/mir_core/src/Windows/CCtrlPages.cpp @@ -47,8 +47,8 @@ struct CCtrlPages::TPageInfo : public MZeroedObject CDlgBase *m_pDlg;
};
-CCtrlPages::CCtrlPages(CDlgBase *dlg, int ctrlId)
- : CCtrlBase(dlg, ctrlId),
+CCtrlPages::CCtrlPages(CDlgBase *dlg, int ctrlId) :
+ CCtrlBase(dlg, ctrlId),
m_hIml(nullptr),
m_pActivePage(nullptr),
m_pages(4, NumericKeySortT)
@@ -152,19 +152,22 @@ void CCtrlPages::ActivatePage(int iPage) if (info == nullptr || info->m_pDlg == nullptr)
return;
- if (m_pActivePage != nullptr)
- ShowWindow(m_pActivePage->GetHwnd(), SW_HIDE);
+ if (info->m_pDlg != m_pActivePage) {
+ if (m_pActivePage != nullptr)
+ ShowWindow(m_pActivePage->GetHwnd(), SW_HIDE);
- m_pActivePage = info->m_pDlg;
- if (m_pActivePage->GetHwnd() && info->m_bScheduledResize) {
- RECT rc;
- GetClientRect(m_hwnd, &rc);
- TabCtrl_AdjustRect(m_hwnd, FALSE, &rc);
- SetWindowPos(m_pActivePage->GetHwnd(), nullptr, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, SWP_NOACTIVATE | SWP_NOZORDER);
+ m_pActivePage = info->m_pDlg;
+ if (m_pActivePage->GetHwnd() && info->m_bScheduledResize) {
+ RECT rc;
+ GetClientRect(m_hwnd, &rc);
+ TabCtrl_AdjustRect(m_hwnd, FALSE, &rc);
+ SetWindowPos(m_pActivePage->GetHwnd(), nullptr, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, SWP_NOACTIVATE | SWP_NOZORDER);
+ }
+
+ TabCtrl_SetCurSel(m_hwnd, iPage);
+ ShowPage(m_pActivePage);
}
- TabCtrl_SetCurSel(m_hwnd, iPage);
- ShowPage(m_pActivePage);
::SendMessage(m_pActivePage->GetHwnd(), WM_MOUSEACTIVATE, 0, 0);
}
|