[COMCTL32] Unset the toolbar's hot item when deleting a button. CORE-14222
[reactos.git] / modules / rostests / winetests / comctl32 / toolbar.c
index e2c29f4..fc217ee 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
-#include <stdarg.h>
-
-#include "windef.h"
-#include "winbase.h"
-#include "wingdi.h"
-#include "winuser.h"
-#include "winnls.h"
-#include "winreg.h"
-#include "commctrl.h" 
-
-#include "resources.h"
-
-#include "wine/test.h"
-
-#include "msg.h"
+#include "precomp.h"
 
 #define PARENT_SEQ_INDEX       0
 #define NUM_MSG_SEQUENCES      1
@@ -871,7 +857,7 @@ static void test_hotitem(void)
     ok(ret == 3, "Hot item: %lx, expected 3\n", ret);
     g_fBlockHotItemChange = TRUE;
     ret = SendMessageA(hToolbar, TB_SETHOTITEM, 2, 0);
-    ok(ret == 3, "TB_SETHOTITEM returned %ld, expected 2\n", ret);
+    ok(ret == 3, "TB_SETHOTITEM returned %ld, expected 3\n", ret);
     ret = SendMessageA(hToolbar, TB_GETHOTITEM, 0, 0);
     ok(ret == 3, "Hot item: %lx, expected 3\n", ret);
     g_fBlockHotItemChange = FALSE;
@@ -902,7 +888,7 @@ static void test_hotitem(void)
     /* enabling the button won't change that */
     SendMessageA(hToolbar, TB_ENABLEBUTTON, 9, TRUE);
     ret = SendMessageA(hToolbar, TB_GETHOTITEM, 0, 0);
-    ok(ret == -1, "TB_SETHOTITEM returned %ld, expected -1\n", ret);
+    ok(ret == -1, "TB_GETHOTITEM returned %ld, expected -1\n", ret);
 
     /* disabling a hot button works */
     ret = SendMessageA(hToolbar, TB_SETHOTITEM, 3, 0);
@@ -910,7 +896,7 @@ static void test_hotitem(void)
     g_fReceivedHotItemChange = FALSE;
     SendMessageA(hToolbar, TB_ENABLEBUTTON, 7, FALSE);
     ret = SendMessageA(hToolbar, TB_GETHOTITEM, 0, 0);
-    ok(ret == 3, "TB_SETHOTITEM returned %ld, expected 3\n", ret);
+    ok(ret == 3, "TB_GETHOTITEM returned %ld, expected 3\n", ret);
     ok(g_fReceivedHotItemChange == FALSE, "Unexpected TBN_HOTITEMCHANGE\n");
 
     SendMessageA(hToolbar, TB_SETHOTITEM, 1, 0);
@@ -920,7 +906,17 @@ static void test_hotitem(void)
     g_fReceivedHotItemChange = FALSE;
     ok(SendMessageA(hToolbar, TB_SETBUTTONINFOA, 1, (LPARAM)&tbinfo) == TRUE, "TB_SETBUTTONINFOA failed\n");
     ret = SendMessageA(hToolbar, TB_GETHOTITEM, 0, 0);
+    ok(ret == 1, "TB_GETHOTITEM returned %ld, expected 1\n", ret);
+    ok(g_fReceivedHotItemChange == FALSE, "Unexpected TBN_HOTITEMCHANGE\n");
+
+    /* deleting a button unsets the hot item */
+    ret = SendMessageA(hToolbar, TB_SETHOTITEM, 0, 0);
     ok(ret == 1, "TB_SETHOTITEM returned %ld, expected 1\n", ret);
+    g_fReceivedHotItemChange = FALSE;
+    ret = SendMessageA(hToolbar, TB_DELETEBUTTON, 1, 0);
+    ok(ret == TRUE, "TB_DELETEBUTTON returned %ld, expected TRUE\n", ret);
+    ret = SendMessageA(hToolbar, TB_GETHOTITEM, 0, 0);
+    ok(ret == -1, "TB_GETHOTITEM returned %ld, expected -1\n", ret);
     ok(g_fReceivedHotItemChange == FALSE, "Unexpected TBN_HOTITEMCHANGE\n");
 
     DestroyWindow(hToolbar);