diff --git a/Tools/nib2cib/NSButton.j b/Tools/nib2cib/NSButton.j index 8f3f87b73..928e06c80 100644 --- a/Tools/nib2cib/NSButton.j +++ b/Tools/nib2cib/NSButton.j @@ -199,6 +199,8 @@ var NSButtonIsBorderedMask = 0x00800000, [self setImage:[cell normalImage]]; [self setImagePosition:[cell imagePosition]]; + [self setEnabled:[cell isEnabled]]; + return self; } diff --git a/Tools/nib2cib/NSControl.j b/Tools/nib2cib/NSControl.j index abe978ec9..06afe13cd 100644 --- a/Tools/nib2cib/NSControl.j +++ b/Tools/nib2cib/NSControl.j @@ -44,9 +44,10 @@ [self setFont:[cell font]]; [self setAlignment:[cell alignment]]; - // The NSEnabled flag is never changed when changing the enabled state of a control - // Enabled state should is derived from the NSCellFlags decoded by NSCell - [self setEnabled:[cell isEnabled]]; + // Enabled state is derived from the NSEnabled flag or the control's cell. + // For example NSTableView uses the NSEnabled flag, but NSButton uses it's cell isEnabled state. + // We use the NSEnabled flag here and override the behavior in controls using different logic (NSButton). + [self setEnabled:[aCoder decodeBoolForKey:@"NSEnabled"]]; [self setContinuous:[cell isContinuous]]; [self setTarget:[aCoder decodeObjectForKey:@"NSTarget"]];