diff --git a/lcl/interfaces/win32/win32callback.inc b/lcl/interfaces/win32/win32callback.inc index edad96f558..afc421cd85 100644 --- a/lcl/interfaces/win32/win32callback.inc +++ b/lcl/interfaces/win32/win32callback.inc @@ -314,15 +314,12 @@ begin if WinControl.Controls[i] is TWinControl then begin ChildControl := TWinControl(WinControl.Controls[i]); - if Enable then - begin - if ChildControl.Enabled then - EnableWindow(ChildControl.Handle, true); - end - else - EnableWindow(ChildControl.Handle, false); - EnableChildWindows(ChildControl, Enable); // Recursive call + if not Enable or ChildControl.Enabled then + begin + EnableWindow(ChildControl.Handle, Enable and ChildControl.Enabled); + EnableChildWindows(ChildControl, Enable and ChildControl.Enabled); // Recursive call + end; end; end; end;