diff --git a/src/io/mouse.js b/src/io/mouse.js
index 2c4aa8aee..6ab158b2d 100644
--- a/src/io/mouse.js
+++ b/src/io/mouse.js
@@ -44,6 +44,12 @@ class Mouse {
                     return;
                 }
             }
+            // If haven't returned, activate click hats for stage.
+            // Still using both blocks for sharing compatibility.
+            this.runtime.startHats('event_whenthisspriteclicked',
+                null, this.runtime.getTargetForStage());
+            this.runtime.startHats('event_whenstageclicked',
+                null, this.runtime.getTargetForStage());
         }
     }
 
@@ -70,7 +76,10 @@ class Mouse {
         }
         if (typeof data.isDown !== 'undefined') {
             this._isDown = data.isDown;
-            if (!this._isDown) {
+            // Make sure click is within the canvas bounds to activate click hats
+            if (!this._isDown &&
+                data.x > 0 && data.x < data.canvasWidth &&
+                data.y > 0 && data.y < data.canvasHeight) {
                 this._activateClickHats(data.x, data.y, data.wasDragged);
             }
         }