Merge remote branch 'origin/master'

This commit is contained in:
Jonathan Puckey 2011-06-21 00:58:35 +02:00
commit b5cc2e9334
4 changed files with 16 additions and 8 deletions

View file

@ -39,14 +39,10 @@
mouseDown = false;
}
function onFrame() {
iterate();
}
var grow = false;
var vector = new Point(150, 0);
function iterate() {
function onFrame() {
for (var i = 0, l = gradient.stops.length; i < l; i++)
gradient.stops[i].color.hue -= 20;
if (grow && vector.length > 300) {

View file

@ -70,8 +70,9 @@ var DomElement = new function() {
isVisible: function(el) {
// See if the scrolled bounds intersect with the windows rectangle
// which always starts at 0, 0
return new Rectangle([0, 0], DomElement.getWindowSize())
.intersects(DomElement.getBounds(el, false, true));
return !DomElement.isInvisible(el)
&& new Rectangle([0, 0], DomElement.getWindowSize())
.intersects(DomElement.getBounds(el, false, true));
}
};
};

View file

@ -70,7 +70,7 @@ var Key = this.Key = new function() {
key = keys[keyCode] || character.toLowerCase(),
handler = down ? 'onKeyDown' : 'onKeyUp',
view = View.focused,
scope = view && view._scope,
scope = view && view.isVisible() && view._scope,
tool = scope && scope.tool;
keyMap[key] = down;
if (tool && tool[handler]) {

View file

@ -193,6 +193,17 @@ var View = this.View = Base.extend({
this._zoom = zoom;
},
/**
* Checks whether the view is currently visible within the current browser
* viewport.
*
* @return {Boolean} Whether the view is visible.
*/
isVisible: function() {
// TODO: Take bounds into account if it's not the full canvas?
return DomElement.isVisible(this._canvas);
},
/**
* @param {Point} point
*/