diff --git a/woman/qt.py b/woman/qt.py
index 42fdc8b26c906bce0937862d0b5a1405d772fcf1..1e10d08d8857a9db86c2ae21d525cb71bfe3f37e 100755
--- a/woman/qt.py
+++ b/woman/qt.py
@@ -221,7 +221,7 @@ def qt_main():
                     target.put_in_new_container(None if new_container is True else new_container)
                 else:
                     target.wrap_if_is_root()
-                if expand and type(self) != I3InnerNodeWidget:
+                if expand and type(self) == I3InnerNodeWidget:
                     if before:
                         self.move(target, expand=True)
                         target.move(self.nodes[0])
@@ -475,6 +475,7 @@ def qt_main():
                         "tabbed": "stacked",
                         "stacked": "splith",
                         }.get(self.layout, "splith")
+            self.workspace_widget.screenshot_changed()
             shared.i3_cmd(f'[con_id={self.nodes[0].container_id}] layout {new_layout}')
             self.layout = new_layout
             self.redraw()
@@ -716,7 +717,7 @@ def qt_main():
             shared.i3_cmd(f'workspace {workspace(self.master, self.slave)}')
 
         def move_to_otput(self, output="next"):
-            shared.i3_cmd(f"move workspace to output {output}")
+            shared.i3_cmd(f"[workspace={workspace(self.master, self.slave)}] move workspace to output {output}")
 
         def move(self, target, swap=False, before=False, expand=False, new_container=None):
             if (w := self.root_i3_tree_widget()) is not None:
diff --git a/woman/watch.py b/woman/watch.py
index c859124fb7401b151ef0581091a0c5e766554163..fd942dd18f16fcf2f090128b6c961b06aa810342 100644
--- a/woman/watch.py
+++ b/woman/watch.py
@@ -77,6 +77,7 @@ def i3_watch():
                 shared.output = e.current.ipc_data['output']
                 master, slave = parse_workspace(e.current.name)
                 event_workspace_is_on((master, slave), shared.output)
+                shared.qt_task("ws_metadata_changed", *shared.workspace_on[shared.output])
                 shared.workspace_on[shared.output] = (master, slave)
             return
         with shared.lock: