diff --git a/ChangeLog b/ChangeLog index 961f3d2d6..7a1e01544 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2000-12-17 Georg Fleischmann + + * gui/Source/NSView.m ([NSView -setFrameSize:]): + scale bounds, if necessary + * gui/Source/NSView.m ([NSView -scaleUnitSquareSize:]): + scale from bounds instead of frame (like OpenStep) + Sun Dec 17 14:32:11 2000 Nicola Pero * Source/NSCell.m ([-_nonAutoreleasedTypingAttributes]): New diff --git a/Source/NSView.m b/Source/NSView.m index ef4a87af6..68dfed731 100644 --- a/Source/NSView.m +++ b/Source/NSView.m @@ -699,7 +699,18 @@ GSSetDragTypes(NSView* obj, NSArray *types) { (*invalidateImp)(self, invalidateSel); } - _frame.size = _bounds.size = newSize; + + if (_is_rotated_or_scaled_from_base) + { + float sx = _bounds.size.width / _frame.size.width; + float sy = _bounds.size.height / _frame.size.height; + + _frame.size = newSize; + _bounds.size.width = _frame.size.width * sx; + _bounds.size.height = _frame.size.height * sy; + } + else + _frame.size = _bounds.size = newSize; [self resizeSubviewsWithOldSize: old_size]; if (_post_frame_changes) @@ -761,8 +772,8 @@ GSSetDragTypes(NSView* obj, NSArray *types) { (*invalidateImp)(self, invalidateSel); } - _bounds.size.width = _frame.size.width / newSize.width; - _bounds.size.height = _frame.size.height / newSize.height; + _bounds.size.width = _bounds.size.width / newSize.width; + _bounds.size.height = _bounds.size.height / newSize.height; _is_rotated_or_scaled_from_base = YES;