diff --git a/woman/watch.py b/woman/watch.py
index 53ecd4c5fadbd8246fbe0d2fe32b5d9ccdf7bc74..c859124fb7401b151ef0581091a0c5e766554163 100644
--- a/woman/watch.py
+++ b/woman/watch.py
@@ -9,6 +9,8 @@ import Xlib
 import Xlib.display
 import Xlib.X
 
+from contextlib import contextmanager
+
 import argparse
 
 import i3ipc
@@ -54,11 +56,29 @@ def event_workspace_deleted(w):
         if shared.output_of_workspace[master] == {}:
             shared.output_of_workspace.pop(master)
 
+disable_on_workspace_focus = 0
+# Non-zero is true
+# Base usage: Advance number on activate, decrease on deactivate
+@contextmanager
+def disable_on_workspace_focus_context():
+    global disable_on_workspace_focus
+    try:
+        disable_on_workspace_focus += 1
+        yield None
+    finally:
+        disable_on_workspace_focus -= 1
 
 def i3_watch():
     shared.init_thread()
 
     def on_workspace_focus(i3p, e):
+        if disable_on_workspace_focus > 0:
+            with shared.lock:
+                shared.output = e.current.ipc_data['output']
+                master, slave = parse_workspace(e.current.name)
+                event_workspace_is_on((master, slave), shared.output)
+                shared.workspace_on[shared.output] = (master, slave)
+            return
         with shared.lock:
             output = e.current.ipc_data['output']
             if output != shared.output: