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