[0.4.14][COMCTL32] Button.c Fix CORE-17260
authorJoachim Henze <Joachim.Henze@reactos.org>
Sat, 3 Oct 2020 13:38:02 +0000 (15:38 +0200)
committerJoachim Henze <Joachim.Henze@reactos.org>
Tue, 13 Oct 2020 14:48:02 +0000 (16:48 +0200)
Press'n'Hold of a button, then leaving the button rect
should redraw the button in unpressed state

Thanks to JIRA user 'I_kill_Bugs' for perfecting
my initial experiments to fix that.

It regressed by 0.4.9-dev-719-g
b3fb8555bf9abcc04eeac31c7153d33e2f027fc0

No need to sync anything with Wine, their code is
correct on Wine head. The bug was in ros specific diff.

cherry picked from commit 0.4.15-dev-1085-g
c947eb4d176603e0ff29217c079d8f5e1c2119e1

dll/win32/comctl32/button.c

index db20749..095515c 100644 (file)
@@ -854,7 +854,6 @@ static LRESULT CALLBACK BUTTON_WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, L
             mouse_event.dwHoverTime = 1;
             TrackMouseEvent(&mouse_event);
         }
-        break;
 #else
 
         if (!TrackMouseEvent(&mouse_event) || !(mouse_event.dwFlags & (TME_HOVER | TME_LEAVE)))
@@ -864,6 +863,7 @@ static LRESULT CALLBACK BUTTON_WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, L
             mouse_event.dwHoverTime = 1;
             TrackMouseEvent(&mouse_event);
         }
+#endif
 
         if ((wParam & MK_LBUTTON) && GetCapture() == hWnd)
         {
@@ -871,7 +871,6 @@ static LRESULT CALLBACK BUTTON_WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, L
             SendMessageW( hWnd, BM_SETSTATE, PtInRect(&rect, pt), 0 );
         }
         break;
-#endif
     }
 
 #ifndef __REACTOS__