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;
 }
 
 /***********************************************************************

Reply via email to