diff options
author | David Roundy <droundy@darcs.net> | 2007-06-10 17:38:36 +0200 |
---|---|---|
committer | David Roundy <droundy@darcs.net> | 2007-06-10 17:38:36 +0200 |
commit | 041a118172cb6af5a6d93961aabe8a7f0d31898e (patch) | |
tree | d95eecbfd982afa8a6d559fefeaee13bfd7f201d | |
parent | 90f43376293f56cc130da436b69a3caa43f3c5c0 (diff) | |
download | xmonad-041a118172cb6af5a6d93961aabe8a7f0d31898e.tar.gz xmonad-041a118172cb6af5a6d93961aabe8a7f0d31898e.tar.xz xmonad-041a118172cb6af5a6d93961aabe8a7f0d31898e.zip |
a few modifications to event-sending to make Tabbed layout work.
darcs-hash:20070610153836-72aca-75025ca798e1b8c2c5d9f95257aef2bca0803749.gz
-rw-r--r-- | Main.hs | 3 | ||||
-rw-r--r-- | Operations.hs | 5 |
2 files changed, 5 insertions, 3 deletions
@@ -186,6 +186,7 @@ handle e@(ButtonEvent {ev_window = w,ev_event_type = t,ev_button = b }) else focus w -- If it's the root window, then it's something we -- grabbed in grabButtons. Otherwise, it's click-to-focus. + sendMessage e -- Always send button events. -- entered a normal window, makes this focused. handle e@(CrossingEvent {ev_window = w, ev_event_type = t}) @@ -225,5 +226,3 @@ handle e@(ConfigureRequestEvent {ev_window = w}) = withDisplay $ \dpy -> do handle (ConfigureEvent {ev_window = w}) = whenX (isRoot w) rescreen handle e = sendMessage e -- trace (eventName e) -- ignoring - -instance Message Event diff --git a/Operations.hs b/Operations.hs index 7405ce7..b4c33cf 100644 --- a/Operations.hs +++ b/Operations.hs @@ -123,7 +123,7 @@ kill = withDisplay $ \d -> withFocused $ \w -> do -- --------------------------------------------------------------------- -- Managing windows -data ModifyWindows = ModifyWindows deriving Typeable +data ModifyWindows = ModifyWindows deriving ( Typeable, Eq ) instance Message ModifyWindows -- | windows. Modify the current window list with a pure function, and refresh @@ -345,6 +345,8 @@ sendMessage a = do n <- (W.tag . W.workspace . W.current) `fmap` gets windowset whenJust ml' $ \l' -> do modify $ \s -> s { layouts = M.insert n (l',ls) (layouts s) } refresh +instance Message Event + -- -- Builtin layout algorithms: -- @@ -436,6 +438,7 @@ splitVerticallyBy f = (mirrorRect *** mirrorRect) . splitHorizontallyBy f . mirr -- function and refresh. layout :: ((Layout, [Layout]) -> (Layout, [Layout])) -> X () layout f = do + sendMessage ModifyWindows modify $ \s -> let n = W.tag . W.workspace . W.current . windowset $ s (Just fl) = M.lookup n $ layouts s |