diff --git a/ChangeLog b/ChangeLog index 706b14cd1..c3270a6dd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2010-07-25 Eric Wasylishen + + * Source/NSSplitView.m (-adjustSubviews): + Call setFrame: on subviews rather than setFrameSize: followed + by setFrameOrigin:, so that the subviews never have an inconsistent + frame (old origin + new size). + + This was messing up cases with NSOpenGLView's inside split views, + (e.g. usr-apps/examples/gui/MyGL) because the NSOpenGLView, + when notified of its size changing, was using the invalid origin. + 2010-07-25 Fred Kiefer * Source/NSBrowser.m, diff --git a/Source/NSSplitView.m b/Source/NSSplitView.m index 3b057dbb3..b3dcc267a 100644 --- a/Source/NSSplitView.m +++ b/Source/NSSplitView.m @@ -880,8 +880,7 @@ static NSNotificationCenter *nc = nil; newSize = NSMakeSize(NSWidth(_bounds), newHeight); newPoint = NSMakePoint(0.0, running); running += newHeight + _dividerWidth; - [views[i] setFrameSize: newSize]; - [views[i] setFrameOrigin: newPoint]; + [views[i] setFrame: NSMakeRect(newPoint.x, newPoint.y, newSize.width, newSize.height)]; } } else @@ -904,8 +903,7 @@ static NSNotificationCenter *nc = nil; newSize = NSMakeSize(newWidth, NSHeight(_bounds)); newPoint = NSMakePoint(running, 0.0); running += newWidth + _dividerWidth; - [views[i] setFrameSize: newSize]; - [views[i] setFrameOrigin: newPoint]; + [views[i] setFrame: NSMakeRect(newPoint.x, newPoint.y, newSize.width, newSize.height)]; } }