Fixed: issue when opening a popUpList of a CPComboBox. We now firstly open the panel and then we modify the content of the panel, this occured an issue with the rendering of the view

This commit is contained in:
Alexandre Wilhelm
2014-12-01 16:07:13 -08:00
parent 2e66601c19
commit e4bfd0ef5e
2 changed files with 6 additions and 7 deletions
+1 -2
View File
@@ -518,8 +518,6 @@ var CPComboBoxTextSubview = @"text",
if (!_listDelegate)
[self setListDelegate:[[_CPPopUpList alloc] initWithDataSource:self]];
[self _selectMatchingItem];
// Note the offset here is 1 less than the focus ring width because the outer edge
// of the focus ring is very transparent and it looks better if the list is closer.
if (CPComboBoxFocusRingWidth < 0)
@@ -530,6 +528,7 @@ var CPComboBoxTextSubview = @"text",
}
[_listDelegate popUpRelativeToRect:[self _borderFrame] view:self offset:CPComboBoxFocusRingWidth - 1];
[self _selectMatchingItem];
}
/*! @ignore */
+5 -5
View File
@@ -336,6 +336,11 @@ var ListColumnIdentifier = @"1";
if ([_panel isVisible])
return;
[self listWillPopUp];
[_panel _trapNextMouseDown];
[[aView window] addChildWindow:_panel ordered:CPWindowAbove];
var rowRect = [_tableView rectOfRow:[self numberOfRowsInTableView:_tableView] - 1],
frame = CGRectMake(0, 0, MAX(_listWidth, CGRectGetWidth(aRect)), CGRectGetMaxY(rowRect));
@@ -346,11 +351,6 @@ var ListColumnIdentifier = @"1";
[_scrollView setFrameSize:CGSizeMakeCopy(frame.size)];
[_tableView setEnabled:[_dataSource numberOfItemsInList:self] > 0];
[self scrollItemAtIndexToTop:[_tableView selectedRow]];
[self listWillPopUp];
[_panel _trapNextMouseDown];
[[aView window] addChildWindow:_panel ordered:CPWindowAbove];
}
#pragma mark Setting Display Attributes