xposeGUI :: Int -> Int -> AppController -> IO ()
exposeGUI x y app = do
  let rw = floor $ appWidth app / zf
      rh = floor $ appHeight app / zf
      rx = x - rw `div` 2
      ry = y - rh `div` 2
      zf = appZoomFactor app
      gv = appGView app
  case gv of
    G.StandardView _ za -> do
      _ <- blitSurface za Nothing (appScreen app) (Just $ Rect rx ry rw rh)
      return ()

exposeGUI :: Int -> Int -> AppController -> IO ()
exposeGUI x y app = do
  let rw = floor $ appWidth app / zf
      rh = floor $ appHeight app / zf
      rx = x - rw `div` 2
      ry = y - rh `div` 2
      zf = appZoomFactor app
      gv = appGView app
  case gv of
    G.StandardView _ za -> do
      _ <- blitSurface za Nothing (appScreen app) (Just $ Rect rx ry rw rh)
      return ()
exposeGUI x y app = do
  let rw = floor $ appWidth app / zf
      rh = floor $ appHeight app / zf
      rx = x - rw `div` 2
      ry = y - rh `div` 2
      zf = appZoomFactor app
      gv = appGView app
  case gv of
    G.StandardView _ za -> do
      _ <- blitSurface za Nothing (appScreen app) (Just $ Rect rx ry rw rh)
      return ()