https://git.reactos.org/?p=reactos.git;a=commitdiff;h=a6ab8ca780d58d7c62de4c4dadfbc5d5234fca57
commit a6ab8ca780d58d7c62de4c4dadfbc5d5234fca57 Author: Katayama Hirofumi MZ <katayama.hirofumi...@gmail.com> AuthorDate: Sat Feb 10 14:25:12 2024 +0900 Commit: GitHub <nore...@github.com> CommitDate: Sat Feb 10 14:25:12 2024 +0900 [MSUTB] Implement ClosePopupTipbar (#6468) Supporting Language Bar... JIRA issue: CORE-19363 - Implement ClosePopupTipbar function. --- dll/win32/msutb/msutb.cpp | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/dll/win32/msutb/msutb.cpp b/dll/win32/msutb/msutb.cpp index f1c350035a3..5f3bc581fa3 100644 --- a/dll/win32/msutb/msutb.cpp +++ b/dll/win32/msutb/msutb.cpp @@ -16,6 +16,7 @@ DWORD g_dwOSInfo = 0; CRITICAL_SECTION g_cs; LONG g_DllRefCount = 0; BOOL g_bWinLogon = FALSE; +BOOL g_fInClosePopupTipbar = FALSE; BOOL g_bShowTipbar = TRUE; BOOL g_bShowDebugMenu = FALSE; @@ -1250,6 +1251,7 @@ class CTipbarWnd LONG m_cRefs; friend class CUTBContextMenu; friend class CTipbarGripper; + friend VOID WINAPI ClosePopupTipbar(VOID); public: CTipbarWnd(DWORD style); @@ -4757,12 +4759,36 @@ SetRegisterLangBand(BOOL bRegister) /*********************************************************************** * ClosePopupTipbar (MSUTB.@) * - * @unimplemented + * @implemented */ EXTERN_C VOID WINAPI ClosePopupTipbar(VOID) { - FIXME("stub:()\n"); + TRACE("()\n"); + + if (g_fInClosePopupTipbar) + return; + + g_fInClosePopupTipbar = TRUE; + + if (g_pTipbarWnd) + { + g_pTipbarWnd->m_pDeskBand = NULL; + g_pTipbarWnd->DestroyWnd(); + g_pTipbarWnd->Release(); + g_pTipbarWnd = NULL; + } + + if (g_pTrayIconWnd) + { + g_pTrayIconWnd->DestroyWnd(); + delete g_pTrayIconWnd; + g_pTrayIconWnd = NULL; + } + + UninitSkipRedrawHKLArray(); + + g_fInClosePopupTipbar = FALSE; } /***********************************************************************