diff --git a/ChangeLog b/ChangeLog index dae897cd7..0e378b473 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2003-03-25 Serg Stoyan + + * Source/NSMenuView.m (setWindowFrameForAttachingToRect:): call sizeToFit + only if cell's frame changed (patch by Michael Hanni). Compute frame if number + of items > 0 instead of > 1 (fixes size problem when there is 1 item in + popup button's menu). + 2003-03-24 Adam Fedor * Merge from 0.8.5 branch diff --git a/Source/NSMenuView.m b/Source/NSMenuView.m index cc867d352..e8134dc30 100644 --- a/Source/NSMenuView.m +++ b/Source/NSMenuView.m @@ -801,16 +801,21 @@ _addLeftBorderOffsetToRect(NSRect aRect) { [_titleView removeFromSuperview]; _titleView = nil; + _needsSizing = YES; } - _cellSize = cellFrame.size; - [self sizeToFit]; + // Only call sizeToFit if needed. + if ((NSEqualSizes(_cellSize, cellFrame.size) == NO) || _needsSizing) + { + _cellSize = cellFrame.size; + [self sizeToFit]; + } /* * Compute the frame */ screenFrame = screenRect; - if (items > 1) + if (items > 0) { float f;