diff --git a/AppKit/CPPopover.j b/AppKit/CPPopover.j index c887fcf7c..6685ca92c 100644 --- a/AppKit/CPPopover.j +++ b/AppKit/CPPopover.j @@ -151,6 +151,7 @@ var CPPopoverDelegate_popover_willShow_ = 1 << 0, - (void)setContentSize:(CGSize)aSize { [[_contentViewController view] setFrameSize:aSize]; + [_popoverWindow updateFrame]; } /*! diff --git a/AppKit/_CPPopoverWindow.j b/AppKit/_CPPopoverWindow.j index 852136230..47ffea603 100644 --- a/AppKit/_CPPopoverWindow.j +++ b/AppKit/_CPPopoverWindow.j @@ -170,9 +170,7 @@ var _CPPopoverWindow_shouldClose_ = 1 << 4, if (![_targetView window]) return; - var point = [self computeOriginFromRect:[_targetView bounds] ofView:_targetView preferredEdge:[_windowView preferredEdge]]; - - [self setFrameOrigin:point]; + [self updateFrame]; } } @@ -366,6 +364,20 @@ var _CPPopoverWindow_shouldClose_ = 1 << 4, return CPBrowserStyleProperty('transition') && CPBrowserStyleProperty('transitionend'); } +/*! + @ignore +*/ +- (void)updateFrame +{ + var rect = CGRectMakeCopy([self frameRectForContentRect:[[self contentView] frame]]), + point = [self computeOriginFromRect:[_targetView bounds] ofView:_targetView preferredEdge:[_windowView preferredEdge]]; + + rect.origin = point; + + [self setFrame:rect display:YES animate:_animates]; +} + + #pragma mark - #pragma mark Actions