summaryrefslogtreecommitdiffstats
path: root/Main.hs
diff options
context:
space:
mode:
authorSpencer Janssen <sjanssen@cse.unl.edu>2007-10-12 03:42:17 +0200
committerSpencer Janssen <sjanssen@cse.unl.edu>2007-10-12 03:42:17 +0200
commit6c6b541ef1e74fc7f0905fd0d39d5fe867c22a6f (patch)
tree8f21050abd58a0c407b0253aa9bff3115dec2c8d /Main.hs
parentd4a3b83436bcc22be93b8084a52a898b952ee94f (diff)
downloadmetatile-6c6b541ef1e74fc7f0905fd0d39d5fe867c22a6f.tar
metatile-6c6b541ef1e74fc7f0905fd0d39d5fe867c22a6f.zip
Add userCode function for the popular m `catchX` return ()
darcs-hash:20071012014217-a5988-06b6f1519b5f87fcbc8220ad5bd69181c721635a
Diffstat (limited to 'Main.hs')
-rw-r--r--Main.hs8
1 files changed, 3 insertions, 5 deletions
diff --git a/Main.hs b/Main.hs
index 8a99a53..06b0162 100644
--- a/Main.hs
+++ b/Main.hs
@@ -164,8 +164,7 @@ handle :: Event -> X ()
handle (KeyEvent {ev_event_type = t, ev_state = m, ev_keycode = code})
| t == keyPress = withDisplay $ \dpy -> do
s <- io $ keycodeToKeysym dpy code 0
- whenJust (M.lookup (cleanMask m,s) keys) id
- `catchX` return ()
+ userCode $ whenJust (M.lookup (cleanMask m,s) keys) id
-- manage a new window
handle (MapRequestEvent {ev_window = w}) = withDisplay $ \dpy -> do
@@ -213,8 +212,7 @@ handle e@(ButtonEvent {ev_window = w,ev_event_type = t,ev_button = b })
-- If it's the root window, then it's something we
-- grabbed in grabButtons. Otherwise, it's click-to-focus.
isr <- isRoot w
- if isr then whenJust (M.lookup (cleanMask (ev_state e), b) mouseBindings) ($ ev_subwindow e)
- `catchX` return ()
+ if isr then userCode $ whenJust (M.lookup (cleanMask (ev_state e), b) mouseBindings) ($ ev_subwindow e)
else focus w
sendMessage e -- Always send button events.
@@ -258,6 +256,6 @@ handle (ConfigureEvent {ev_window = w}) = whenX (isRoot w) rescreen
-- property notify
handle PropertyEvent { ev_event_type = t, ev_atom = a }
- | t == propertyNotify && a == wM_NAME = logHook `catchX` return ()
+ | t == propertyNotify && a == wM_NAME = userCode logHook
handle e = broadcastMessage e -- trace (eventName e) -- ignoring