diff --git a/ChangeLog b/ChangeLog index 4cbc54c34..644965569 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2012-06-07 German A. Arias + + * Source/GSWindowDecorationView.m (-changeWindowHeight:): Use an + intermediate frame before call -layout. This fix bugs #36419 and + #36586. + 2012-06-05 Wolfgang Lux * Tests/gui/TextSystem/deallocation.m: Add new test to verify diff --git a/Source/GSWindowDecorationView.m b/Source/GSWindowDecorationView.m index 4fd79efd9..b3a98561c 100644 --- a/Source/GSWindowDecorationView.m +++ b/Source/GSWindowDecorationView.m @@ -372,10 +372,20 @@ static inline NSRect RectWithSizeScaledByFactor(NSRect aRect, CGFloat factor) orgWindowFrame = [window frame]; windowFrame.origin.y = orgWindowFrame.origin.y + orgWindowFrame.size.height - windowFrame.size.height; windowFrame.origin.x = orgWindowFrame.origin.x; + /* FIXME: Make an intermediate frame to set in the window before call -layout. + * Later we will set a frame with the correct dimensions. This intermediate + * frame only differs on the width (subtract 1). This ensure the correct + * behaviour of the in-window menu. Even when I'm not sure why. + */ + windowFrame.size.width -= 1; - // then resize the window + // then resize the window with the intermediate frame and call -layout [window setFrame: windowFrame display: YES]; [self layout]; + + // Now resize the window to correct width + windowFrame.size.width += 1; + [window setFrame: windowFrame display: YES]; } /*