diff --git a/ChangeLog b/ChangeLog index 55e211d26..b087b557e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Fri Dec 3 10:27:00 1999 Richard Frith-Macdonald + + * Source/NSApplication.m: ([-updateWindowsItem:]) modified to show + document state image with new menus. + * Source/NSMenuView.m: Implement ([-setNeedsDisplayForItemAtIndex:]) + * Source/NSMenuItemCell.m: Fix so that images are drawn. + Fri Dec 3 05:21:40 1999 Nicola Pero * Source/NSTableColumn.m ([-setWidth:]): Tiny changing. diff --git a/Source/NSApplication.m b/Source/NSApplication.m index 8811975ba..e504c9374 100644 --- a/Source/NSApplication.m +++ b/Source/NSApplication.m @@ -1884,49 +1884,39 @@ NSAssert([event retainCount] > 0, NSInternalInconsistencyException); NSMenuItemCell *cell; NSCellImagePosition oldPos; NSImage *oldImage; + NSImage *newImage; BOOL changed; found = YES; cell = [view menuItemCellForItemAtIndex: i]; oldPos = [cell imagePosition]; oldImage = [cell image]; + newImage = oldImage; changed = NO; - if ([aWindow representedFilename] == nil) + if (oldPos != NSImageLeft) { - if (oldPos != NSNoImage) - { - [cell setImagePosition: NSNoImage]; - changed = YES; - } + [cell setImagePosition: NSImageLeft]; + changed = YES; + } + if ([aWindow isDocumentEdited]) + { + newImage = [NSImage imageNamed: @"common_WMCloseBroken"]; } else { - NSImage *newImage = oldImage; - - if (oldPos != NSImageLeft) - { - [cell setImagePosition: NSImageLeft]; - changed = YES; - } - if ([aWindow isDocumentEdited]) - { - newImage = [NSImage imageNamed: @"common_WMCloseBroken"]; - } - else - { - newImage = [NSImage imageNamed: @"common_WMClose"]; - } - if (newImage != oldImage) - { - [cell setImage: newImage]; - changed = YES; - } + newImage = [NSImage imageNamed: @"common_WMClose"]; + } + if (newImage != oldImage) + { + [item setImage: newImage]; + [cell setImage: newImage]; + changed = YES; } if (changed) { [menu sizeToFit]; - [menu update]; + [view setNeedsDisplayForItemAtIndex: i]; } break; } diff --git a/Source/NSMenuItemCell.m b/Source/NSMenuItemCell.m index 2ca8cc585..e2fd291aa 100644 --- a/Source/NSMenuItemCell.m +++ b/Source/NSMenuItemCell.m @@ -559,7 +559,7 @@ if (mcell_imageToDisplay) { - mcell_imageSize = [mcell_imageToDisplay size]; + mcell_imageWidth = [mcell_imageToDisplay size].width; [mcell_imageToDisplay setBackgroundColor: backgroundColor]; } diff --git a/Source/NSMenuView.m b/Source/NSMenuView.m index 660931cf5..8c6aec0bb 100644 --- a/Source/NSMenuView.m +++ b/Source/NSMenuView.m @@ -580,9 +580,11 @@ static float GSMenuBarHeight = 25.0; // A wild guess. (frame.size.height - point.y) / cellSize.height; } -- (void)setNeedsDisplayForItemAtIndex: (int)index +- (void) setNeedsDisplayForItemAtIndex: (int)index { - [[menuv_itemCells objectAtIndex: index] setNeedsDisplay: YES]; + NSRect aRect = [self rectOfItemAtIndex: index]; + + [self setNeedsDisplayInRect: aRect]; } - (NSPoint)locationForSubmenu: (NSMenu *)aSubmenu