* CPTableView.j: Add forward @class declaration for CPTableView preceding _CPTableRowView.
* CPOutlineView.j:
- Import CPCompatibility.j and declare the global document reference.
- Replace partial DOM guards in -[CPDisclosureButton drawRect:] with an early return.
Regression tests and their supporting framework fixes are incorporated.
Remaining test failures identify Aristo3 defects.
Conflict resolutions:
* CPButtonBar: Retain Aristo3 decoding and observe the hidden state of decoded buttons.
* CPPopUpButton: Retain the Aristo3 bezel style and clear the inherited button value.
Ensure decoded views are correct by verifying they retain their connections and
respond as before archiving.
A decoded table no longer raises, and decoded button bars, tab views, text
fields and outlines retain their observers, selection, delegates and data source
methods.
* CPButtonBar: Observe the hidden state of decoded buttons.
* CPOutlineView: Decode the data source and delegate through their setters.
* CPTableView: Set the data source and delegate after _init during decoding.
* CPTabView: Select the archived tab view item during decoding, before the
delegate is set.
* CPTextField: Archive the delegate.
* CPViewDecodedBehaviorTest: Verifies connections, the view hierarchy, and the
behaviour of objects each class creates or observes after decoding.
- CPScrollView _shouldShowCornerView, CPSplitView
_maybePostWillResizeNotification/_maybePostDidResizeNotification/
_didSuppressResizeNotifications/_setResizeNotificationsSuppressed:,
CPTableView _numberOfColumns/_updateColumnRangesIfNecessary/
_fullRowHeight/_rowBottomOfHeightInfo:/_hasVariableRowHeights,
CPMenuItem _decodeValueForKey:defaultValue:coder:/
_encodeValue:forKey:ifNotEqualTo:coder:, CALayer
_adjustContentsZIndexForLayer: and DOM: macros that referenced
ivars, self or the enclosing method's coder become private instance
methods; call sites rewritten from macro form to message form
Added missing semi-colon on line 3763.
Removed the redundant `var` keyword on line 4910
Removed the second redundant variable `CPTableViewHeaderViewKey` which
was declared with the same name and value twice in the same variable
block.
Previously, when double-clicking on a table cell to edit it, there was a possibility of a race condition. A refresh of the display was requested, then the run loop was passed through once. But it was possible for the display refresh to not be queued when the run loop was passed through, in which case the refresh would cancel the editing. Or at least I think that's what was happening. ;-)
This commit (hopefully) eliminates the race condition by synchronously refreshing the layout and display.
Made some miscellaneous formatting fixes as well.