Further drawing fixes.

Reviewed by me.
This commit is contained in:
Francisco Ryan Tolmasky I
2009-08-31 14:39:00 -07:00
parent efcc5d1054
commit 2fbe026215
4 changed files with 42 additions and 29 deletions
+6 -3
View File
@@ -210,7 +210,7 @@ var CPSplitViewHorizontalImage = nil,
_DOMDividerElements[_drawingDivider].style.cursor = "move";
_DOMDividerElements[_drawingDivider].style.position = "absolute";
_DOMDividerElements[_drawingDivider].style.backgroundRepeat = "repeat";
CPDOMDisplayServerAppendChild(_DOMElement, _DOMDividerElements[_drawingDivider]);
if (_isPaneSplitter)
@@ -224,7 +224,7 @@ var CPSplitViewHorizontalImage = nil,
_DOMDividerElements[_drawingDivider].style.backgroundImage = "url('"+_dividerImagePath+"')";
}
}
CPDOMDisplayServerSetStyleLeftTop(_DOMDividerElements[_drawingDivider], NULL, _CGRectGetMinX(aRect), _CGRectGetMinY(aRect));
CPDOMDisplayServerSetStyleSize(_DOMDividerElements[_drawingDivider], _CGRectGetWidth(aRect), _CGRectGetHeight(aRect));
#endif
@@ -303,7 +303,7 @@ var CPSplitViewHorizontalImage = nil,
- (void)trackDivider:(CPEvent)anEvent
{
var type = [anEvent type];
if (type == CPLeftMouseUp)
{
if (_currentDivider != CPNotFound)
@@ -359,6 +359,9 @@ var CPSplitViewHorizontalImage = nil,
}
}
}
if (_currentDivider === CPNotFound)
return;
}
else if (type == CPLeftMouseDragged && _currentDivider != CPNotFound)
+2 -2
View File
@@ -1686,11 +1686,11 @@ setBoundsOrigin:
- (void)setNeedsLayout
{
_needsLayout = YES;
if (!(_viewClassFlags & CPViewHasCustomLayoutSubviews))
return;
_needsLayout = YES;
_CPDisplayServerAddLayoutObject(self);
}
+1 -1
View File
@@ -20,7 +20,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#define DOM_OPTIMIZATION 1
#define DOM_OPTIMIZATION 0
#define SetStyleOrigin 0
#define SetStyleLeftTop 0
+33 -23
View File
@@ -66,33 +66,43 @@ function _CPDisplayServerAddLayoutObject(anObject)
+ (void)run
{
var index = 0;
for (; index < layoutObjects.length; ++index)
while (layoutObjects.length || displayObjects.length)
{
var object = layoutObjects[index];
var index = 0;
delete layoutObjectsByUID[[object UID]];
[object layoutIfNeeded];
for (; index < layoutObjects.length; ++index)
{
var object = layoutObjects[index];
delete layoutObjectsByUID[[object UID]];
[object layoutIfNeeded];
}
layoutObjects = [];
layoutObjectsByUID = { };
index = 0;
for (; index < displayObjects.length; ++index)
{
if (layoutObjects.length)
break;
var object = displayObjects[index];
delete displayObjectsByUID[[object UID]];
[object displayIfNeeded];
}
if (index === displayObjects.length)
{
displayObjects = [];
displayObjectsByUID = { };
}
else
displayObjects = displayObjects.splice(0, index);
}
EXECUTE_DOM_INSTRUCTIONS();
layoutObjects = [];
layoutObjectsByUID = { };
index = 0;
var count = displayObjects.length;
for (; index < count; ++index)
[displayObjects[index] displayIfNeeded];
EXECUTE_DOM_INSTRUCTIONS();
displayObjects = [];
displayObjectsByUID = { };
[runLoop performSelector:@selector(run) target:self argument:nil order:0 modes:[CPDefaultRunLoopMode]];
}