diff --git a/Graphics/Rendering/Hieroglyph/OpenGL.hs b/Graphics/Rendering/Hieroglyph/OpenGL.hs
--- a/Graphics/Rendering/Hieroglyph/OpenGL.hs
+++ b/Graphics/Rendering/Hieroglyph/OpenGL.hs
@@ -64,6 +64,10 @@
   }
   | Geometry BaseVisual
 
+reverseMouseCoords b x y = do
+    let renderDataE = fromJust $ Buster.eventByQName "Hieroglyph" "Hieroglyph" "RenderData" b
+    (_,sy) <- Gtk.drawingAreaGetSize . Gtk.castToDrawingArea . drawarea . head . Buster.eventdata $ renderDataE
+    return (Point x (fromIntegral sy-y))
 
 arcFn _ _ _ [] = []
 arcFn x y r (t:ts) = (x + r * cos t) : (y + r * sin t) : arcFn x y r ts
diff --git a/Graphics/Rendering/Hieroglyph/Visual.hs b/Graphics/Rendering/Hieroglyph/Visual.hs
--- a/Graphics/Rendering/Hieroglyph/Visual.hs
+++ b/Graphics/Rendering/Hieroglyph/Visual.hs
@@ -90,7 +90,7 @@
 outlined x os = (\o -> o{aoutlined = x}) <%> primitives os
 clipped x os = (\o -> o{aclipped = x}) <%> primitives os
 name x os = (\o -> o{aname = Just x}) <%> primitives os
-cached x os = (\o -> o{updated = False}) <%> primitives os
-fresh x os = (\o -> o{updated = True}) <%> primitives os
-
+cached os = (\o -> o{updated = False}) <%> primitives os
+fresh os = (\o -> o{updated = True}) <%> primitives os
+linewidth x os = (\o -> o{alinewidth = x}) <%> primitives os
 
diff --git a/Hieroglyph.cabal b/Hieroglyph.cabal
--- a/Hieroglyph.cabal
+++ b/Hieroglyph.cabal
@@ -1,5 +1,5 @@
 name: Hieroglyph
-version: 2.21
+version: 2.22
 cabal-version: >=1.2
 build-type: Simple
 license: BSD3
