diff --git a/js/ui/layout.js b/js/ui/layout.js
index ad260ec..8fd0220 100644
--- a/js/ui/layout.js
+++ b/js/ui/layout.js
@@ -1075,7 +1075,10 @@
             struts.push(strut);
         }
 
-        global.set_stage_input_region(rects);
+        if (global.top_window_group.get_children().length == 0)
+            global.set_stage_input_region(rects);
+        else
+            global.set_stage_input_region([]);
 
         let screen = global.screen;
         for (let w = 0; w < screen.n_workspaces; w++) {
diff --git a/js/ui/main.js b/js/ui/main.js
index fcffbf7..1cf37fb 100644
--- a/js/ui/main.js
+++ b/js/ui/main.js
@@ -131,6 +131,7 @@
     global.window_group.reparent(uiGroup);
     global.overlay_group.reparent(uiGroup);
     global.stage.add_actor(uiGroup);
+    global.top_window_group.reparent(global.stage);
 
     layoutManager = new Layout.LayoutManager();
     xdndHandler = new XdndHandler.XdndHandler();
diff --git a/src/shell-global.c b/src/shell-global.c
index d82885d..57e5512 100644
--- a/src/shell-global.c
+++ b/src/shell-global.c
@@ -107,6 +107,7 @@
   PROP_STAGE,
   PROP_STAGE_INPUT_MODE,
   PROP_WINDOW_GROUP,
+  PROP_TOP_WINDOW_GROUP,
   PROP_BACKGROUND_ACTOR,
   PROP_WINDOW_MANAGER,
   PROP_SETTINGS,