diff --git a/frontend/src/uxbox/main/data/workspace.cljs b/frontend/src/uxbox/main/data/workspace.cljs
index d2bd006d9..5ada86f28 100644
--- a/frontend/src/uxbox/main/data/workspace.cljs
+++ b/frontend/src/uxbox/main/data/workspace.cljs
@@ -118,11 +118,7 @@
 (deftype ActivateFlag [flag]
   ptk/UpdateEvent
   (update [_ state]
-    (update-in state [:workspace :flags] conj flag))
-
-  ptk/WatchEvent
-  (watch [_ state stream]
-    (rx/of (set-tooltip "Drag to use the ruler"))))
+    (update-in state [:workspace :flags] conj flag)))
 
 (defn activate-flag
   [flag]
@@ -132,11 +128,7 @@
 (deftype DeactivateFlag [flag]
   ptk/UpdateEvent
   (update [_ state]
-    (update-in state [:workspace :flags] disj flag))
-
-  ptk/WatchEvent
-  (watch [_ state stream]
-    (rx/of (set-tooltip nil))))
+    (update-in state [:workspace :flags] disj flag)))
 
 (defn deactivate-flag
   [flag]
@@ -155,6 +147,40 @@
   [flag]
   (ToggleFlag. flag))
 
+;; --- Workspace Ruler
+
+(deftype ActivateRuler []
+  ptk/WatchEvent
+  (watch [_ state stream]
+    (rx/of (set-tooltip "Drag to use the ruler")
+           (activate-flag :ruler))))
+
+(defn activate-ruler
+  []
+  (ActivateRuler.))
+
+(deftype DeactivateRuler []
+  ptk/WatchEvent
+  (watch [_ state stream]
+    (rx/of (set-tooltip nil)
+           (deactivate-flag :ruler))))
+
+(defn deactivate-ruler
+  []
+  (DeactivateRuler.))
+
+(deftype ToggleRuler []
+  ptk/WatchEvent
+  (watch [_ state stream]
+    (let [flags (get-in state [:workspace :flags])]
+      (if (contains? flags :ruler)
+        (rx/of (deactivate-ruler))
+        (rx/of (activate-ruler))))))
+
+(defn toggle-ruler
+  []
+  (ToggleRuler.))
+
 ;; --- Icons Toolbox
 
 (deftype SelectIconsToolboxCollection [id]
diff --git a/frontend/src/uxbox/main/ui/workspace/canvas.cljs b/frontend/src/uxbox/main/ui/workspace/canvas.cljs
index bcf7a1ef0..e41993d56 100644
--- a/frontend/src/uxbox/main/ui/workspace/canvas.cljs
+++ b/frontend/src/uxbox/main/ui/workspace/canvas.cljs
@@ -93,12 +93,12 @@
   {:mixins [mx/reactive mx/static]}
   [tooltip]
   (let [coords (mx/react refs/window-mouse-position)]
-   [:span.cursor-tooltip
-    {:style
-     {:position "fixed"
-      :left (str (+ (:x coords) 5) "px")
-      :top (str (- (:y coords) 25) "px")}}
-    tooltip]))
+    [:span.cursor-tooltip
+     {:style
+      {:position "fixed"
+       :left (str (+ (:x coords) 5) "px")
+       :top (str (- (:y coords) 25) "px")}}
+     tooltip]))
 
 ;; --- Canvas
 
diff --git a/frontend/src/uxbox/main/ui/workspace/header.cljs b/frontend/src/uxbox/main/ui/workspace/header.cljs
index 0b9bab382..0805058e0 100644
--- a/frontend/src/uxbox/main/ui/workspace/header.cljs
+++ b/frontend/src/uxbox/main/ui/workspace/header.cljs
@@ -8,17 +8,18 @@
 (ns uxbox.main.ui.workspace.header
   (:require [beicon.core :as rx]
             [uxbox.config :as cfg]
-            [uxbox.util.router :as r]
             [potok.core :as ptk]
+            [uxbox.builtins.icons :as i]
             [uxbox.main.store :as st]
             [uxbox.main.refs :as refs]
             [uxbox.main.data.workspace :as dw]
             [uxbox.main.data.history :as udh]
+            [uxbox.main.data.undo :as udu]
             [uxbox.main.data.lightbox :as udl]
             [uxbox.main.ui.workspace.clipboard]
-            [uxbox.builtins.icons :as i]
             [uxbox.main.ui.users :as ui.u]
             [uxbox.main.ui.navigation :as nav]
+            [uxbox.util.router :as r]
             [uxbox.util.mixins :as mx :include-macros true]
             [uxbox.util.geom.point :as gpt]
             [uxbox.util.math :as mth]))
diff --git a/frontend/src/uxbox/main/ui/workspace/sidebar/drawtools.cljs b/frontend/src/uxbox/main/ui/workspace/sidebar/drawtools.cljs
index 666c1f3e4..1831163ed 100644
--- a/frontend/src/uxbox/main/ui/workspace/sidebar/drawtools.cljs
+++ b/frontend/src/uxbox/main/ui/workspace/sidebar/drawtools.cljs
@@ -102,11 +102,11 @@
                    (sort-by (comp :priority second)))
 
         select-drawtool #(st/emit! ::uev/interrupt
-                                   (udw/deactivate-flag :ruler)
+                                   (udw/deactivate-ruler)
                                    (udw/select-for-drawing %))
-        toggle-flag #(st/emit! (udw/select-for-drawing nil)
-                               (uds/deselect-all)
-                               (udw/toggle-flag %))]
+        toggle-ruler #(st/emit! (udw/select-for-drawing nil)
+                                (uds/deselect-all)
+                                (udw/toggle-ruler))]
 
     [:div#form-tools.tool-window.drawing-tools
      [:div.tool-window-bar
@@ -125,7 +125,7 @@
 
       [:div.tool-btn.tooltip.tooltip-hover
        {:alt "Ruler"
-        :on-click (partial toggle-flag :ruler)
+        :on-click toggle-ruler
         :class (when (contains? flags :ruler) "selected")}
        i/ruler-tool]]]))