a few modifications to event-sending to make Tabbed layout work.

This commit is contained in:
David Roundy 2007-06-10 15:38:36 +00:00
parent b97e8836e2
commit c8b6388fb8
2 changed files with 5 additions and 3 deletions

View File

@ -186,6 +186,7 @@ handle e@(ButtonEvent {ev_window = w,ev_event_type = t,ev_button = b })
else focus w else focus w
-- If it's the root window, then it's something we -- If it's the root window, then it's something we
-- grabbed in grabButtons. Otherwise, it's click-to-focus. -- grabbed in grabButtons. Otherwise, it's click-to-focus.
sendMessage e -- Always send button events.
-- entered a normal window, makes this focused. -- entered a normal window, makes this focused.
handle e@(CrossingEvent {ev_window = w, ev_event_type = t}) 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 (ConfigureEvent {ev_window = w}) = whenX (isRoot w) rescreen
handle e = sendMessage e -- trace (eventName e) -- ignoring handle e = sendMessage e -- trace (eventName e) -- ignoring
instance Message Event

View File

@ -123,7 +123,7 @@ kill = withDisplay $ \d -> withFocused $ \w -> do
-- --------------------------------------------------------------------- -- ---------------------------------------------------------------------
-- Managing windows -- Managing windows
data ModifyWindows = ModifyWindows deriving Typeable data ModifyWindows = ModifyWindows deriving ( Typeable, Eq )
instance Message ModifyWindows instance Message ModifyWindows
-- | windows. Modify the current window list with a pure function, and refresh -- | 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) } whenJust ml' $ \l' -> do modify $ \s -> s { layouts = M.insert n (l',ls) (layouts s) }
refresh refresh
instance Message Event
-- --
-- Builtin layout algorithms: -- Builtin layout algorithms:
-- --
@ -436,6 +438,7 @@ splitVerticallyBy f = (mirrorRect *** mirrorRect) . splitHorizontallyBy f . mirr
-- function and refresh. -- function and refresh.
layout :: ((Layout, [Layout]) -> (Layout, [Layout])) -> X () layout :: ((Layout, [Layout]) -> (Layout, [Layout])) -> X ()
layout f = do layout f = do
sendMessage ModifyWindows
modify $ \s -> modify $ \s ->
let n = W.tag . W.workspace . W.current . windowset $ s let n = W.tag . W.workspace . W.current . windowset $ s
(Just fl) = M.lookup n $ layouts s (Just fl) = M.lookup n $ layouts s