summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--morphic.js7
1 files changed, 4 insertions, 3 deletions
diff --git a/morphic.js b/morphic.js
index 01220d5..aa731ab 100644
--- a/morphic.js
+++ b/morphic.js
@@ -9312,7 +9312,7 @@ Morph.prototype.topMorphAt = function (p) {
var result = c[i].topMorphAt(p);
if (result) return result;
}
- return this.bounds.containsPoint(p) ? this : null;
+ return this.bounds.containsPoint(p) && (this.noticesTransparentClick || !this.isTransparentAt(p)) ? this : null;
};
FrameMorph.prototype.topMorphAt = function (p) {
if (!(this.isVisible && this.bounds.containsPoint(p))) return null;
@@ -9320,13 +9320,13 @@ FrameMorph.prototype.topMorphAt = function (p) {
var result = c[i].topMorphAt(p);
if (result) return result;
}
- return this;
+ return this.noticesTransparentClick || !this.isTransparentAt(p) ? this : null;
};
ShadowMorph.prototype.topMorphAt = function () {
return null;
};
HandMorph.prototype.morphAtPointer = function () {
- return this.world.topMorphAt(this.bounds.origin);
+ return this.world.topMorphAt(this.bounds.origin) || this.world;
};
/*
@@ -9913,6 +9913,7 @@ WorldMorph.prototype.init = function (aCanvas, fillPage) {
this.isDraggable = false;
this.currentKey = null; // currently pressed key code
this.worldCanvas = aCanvas;
+ this.noticesTransparentClick = true;
// additional properties:
this.stamp = Date.now(); // reference in multi-world setups