From 4dadf0cb9520ce8b287f407779bc3a3b9eec70af Mon Sep 17 00:00:00 2001 From: Alexandre Wilhelm Date: Wed, 30 Apr 2014 15:38:13 -0700 Subject: [PATCH] Fixed: CPPopover doesn't change his frame when with setContentSize Previously when we changed the contentSize of an open popover, nothing happens. Now, we the frame change and it's animated if needed --- AppKit/CPPopover.j | 1 + AppKit/_CPPopoverWindow.j | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) 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