https://git.reactos.org/?p=reactos.git;a=commitdiff;h=5ec441a867dee5ffde551d40f71961baf7f671fd

commit 5ec441a867dee5ffde551d40f71961baf7f671fd
Author:     David Quintana <[email protected]>
AuthorDate: Tue Jan 23 23:10:44 2018 +0100
Commit:     David Quintana <[email protected]>
CommitDate: Tue Jan 23 23:10:44 2018 +0100

    [EXPLORER] Workaround for something that may or may not be an "unintended 
feature" of the comctl toolbar.
    Apparently the indices provided in NMTBGETINFOTIP (TBN_GETINFOTIP data 
struct), are not reliable,
    but since the lParam values are, and it saves us a lookup, we will be using 
those instead. Win-Win!
---
 base/shell/explorer/trayntfy.cpp | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/base/shell/explorer/trayntfy.cpp b/base/shell/explorer/trayntfy.cpp
index f61e1f6bb4..1b05b501a7 100644
--- a/base/shell/explorer/trayntfy.cpp
+++ b/base/shell/explorer/trayntfy.cpp
@@ -853,14 +853,17 @@ public:
     }
 
 
-    VOID GetTooltipText(int index, LPTSTR szTip, DWORD cchTip)
+    VOID GetTooltipText(LPARAM data, LPTSTR szTip, DWORD cchTip)
     {
-        InternalIconData * notifyItem = GetItemData(index);
-
+        InternalIconData * notifyItem = reinterpret_cast<InternalIconData 
*>(data);
         if (notifyItem)
         {
             StringCchCopy(szTip, cchTip, notifyItem->szTip);
         }
+        else
+        {
+            StringCchCopy(szTip, cchTip, L"");
+        }
     }
 
     VOID ResizeImagelist()
@@ -1240,7 +1243,7 @@ public:
     LRESULT OnGetInfoTip(INT uCode, LPNMHDR hdr, BOOL& bHandled)
     {
         NMTBGETINFOTIPW * nmtip = (NMTBGETINFOTIPW *) hdr;
-        Toolbar.GetTooltipText(nmtip->iItem, nmtip->pszText, 
nmtip->cchTextMax);
+        Toolbar.GetTooltipText(nmtip->lParam, nmtip->pszText, 
nmtip->cchTextMax);
         return TRUE;
     }
 

Reply via email to