https://git.reactos.org/?p=reactos.git;a=commitdiff;h=a6ab8ca780d58d7c62de4c...
commit a6ab8ca780d58d7c62de4c4dadfbc5d5234fca57 Author: Katayama Hirofumi MZ katayama.hirofumi.mz@gmail.com AuthorDate: Sat Feb 10 14:25:12 2024 +0900 Commit: GitHub noreply@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; }
/***********************************************************************