Corrected handling of radio buttons

Medland, Bill Bill.Medland at accpac.com
Mon Dec 10 16:53:30 CST 2001


 <<diff34.txt>> 
-------------- next part --------------
Bill Medland (medbi01 at accpac.com)
For a radio button even if the initial style includes WS_TABSTOP the first
BM_SETCHECK 0 will clear it (even if the state was clear).

Index: wine/controls/button.c
===================================================================
RCS file: /home/wine/wine/controls/button.c,v
retrieving revision 1.52
diff -u -r1.52 button.c
--- wine/controls/button.c	2001/09/19 20:37:04	1.52
+++ wine/controls/button.c	2001/12/10 21:09:32
@@ -371,14 +371,14 @@
     case BM_SETCHECK:
         if (wParam > maxCheckState[btn_type]) wParam = maxCheckState[btn_type];
         state = get_button_state( hWnd );
+	if ((btn_type == BS_RADIOBUTTON) || (btn_type == BS_AUTORADIOBUTTON))
+	{
+            if (wParam) style |= WS_TABSTOP;
+            else style &= ~WS_TABSTOP;
+            SetWindowLongA( hWnd, GWL_STYLE, style );
+	}
         if ((state & 3) != wParam)
         {
-	    if ((btn_type == BS_RADIOBUTTON) || (btn_type == BS_AUTORADIOBUTTON))
-	    {
-                if (wParam) style |= WS_TABSTOP;
-                else style &= ~WS_TABSTOP;
-                SetWindowLongA( hWnd, GWL_STYLE, style );
-	    }
             set_button_state( hWnd, (state & ~3) | wParam );
             paint_button( hWnd, btn_type, ODA_SELECT );
         }


More information about the wine-patches mailing list