diff options
-rw-r--r-- | Main.hs | 2 | ||||
-rw-r--r-- | Operations.hs | 4 |
2 files changed, 4 insertions, 2 deletions
@@ -165,6 +165,7 @@ 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 () -- manage a new window handle (MapRequestEvent {ev_window = w}) = withDisplay $ \dpy -> do @@ -213,6 +214,7 @@ handle e@(ButtonEvent {ev_window = w,ev_event_type = t,ev_button = b }) -- 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 () else focus w sendMessage e -- Always send button events. diff --git a/Operations.hs b/Operations.hs index 03aef7c..d153d43 100644 --- a/Operations.hs +++ b/Operations.hs @@ -66,7 +66,7 @@ manage w = whenX (fmap not $ isClient w) $ withDisplay $ \d -> do n <- fmap (fromMaybe "") $ io $ fetchName d w (ClassHint rn rc) <- io $ getClassHint d w - g <- manageHook w n rn rc + g <- manageHook w n rn rc `catchX` return id windows (g . f) -- | unmanage. A window no longer exists, remove it from the window @@ -169,7 +169,7 @@ windows f = do whenJust (W.peek ws) $ \w -> io $ setWindowBorder d w fbc setTopFocus - logHook + logHook `catchX` return () -- io performGC -- really helps, but seems to trigger GC bugs? -- hide every window that was potentially visible before, but is not |