whitespace. and note if we get a config request for an already managed window

This commit is contained in:
Don Stewart 2007-03-09 14:43:08 +00:00
parent 1ca37d5385
commit 6d613c7cc4

38
Main.hs
View File

@ -77,9 +77,9 @@ main = do
.|. leaveWindowMask .|. leaveWindowMask
grabKeys dpy r grabKeys dpy r
(_, _, ws) <- io $ queryTree dpy r
-- scan for initial windows -- scan for initial windows
(_, _, ws) <- io $ queryTree dpy r
forM_ ws $ \w -> do forM_ ws $ \w -> do
wa <- io $ getWindowAttributes dpy w wa <- io $ getWindowAttributes dpy w
when (not (waOverrideRedirect wa) && waMapState wa == waIsViewable) when (not (waOverrideRedirect wa) && waMapState wa == waIsViewable)
@ -94,11 +94,11 @@ main = do
-- | Grab the keys back -- | Grab the keys back
grabKeys :: Display -> Window -> W () grabKeys :: Display -> Window -> W ()
grabKeys dpy root = do grabKeys dpy r = do
io $ ungrabKey dpy '\0' {-AnyKey-} anyModifier root io $ ungrabKey dpy '\0' {-AnyKey-} anyModifier r
forM_ (M.keys keys) $ \(mask,s) -> io $ do forM_ (M.keys keys) $ \(mask,s) -> io $ do
kc <- keysymToKeycode dpy s kc <- keysymToKeycode dpy s
let grab m = grabKey dpy kc m root True grabModeAsync grabModeAsync let grab m = grabKey dpy kc m r True grabModeAsync grabModeAsync
grab mask grab mask
grab (mask .|. lockMask) grab (mask .|. lockMask)
-- no numlock -- no numlock
@ -118,13 +118,12 @@ grabKeys dpy root = do
-- --
handle :: Event -> W () handle :: Event -> W ()
handle (MapRequestEvent {window = w}) = withDisplay $ \dpy -> do
wa <- io $ getWindowAttributes dpy w
when (not (waOverrideRedirect wa)) $ manage w
-- XCreateWindowEvent(3X11) -- XCreateWindowEvent(3X11)
-- Window manager clients normally should ignore this window if the -- Window manager clients normally should ignore this window if the
-- override_redirect member is True. -- override_redirect member is True.
handle (MapRequestEvent {window = w}) = withDisplay $ \dpy -> do
wa <- io $ getWindowAttributes dpy w
when (not (waOverrideRedirect wa)) $ manage w
handle (DestroyWindowEvent {window = w}) = unmanage w handle (DestroyWindowEvent {window = w}) = unmanage w
handle (UnmapEvent {window = w}) = unmanage w handle (UnmapEvent {window = w}) = unmanage w
@ -141,15 +140,22 @@ handle (KeyEvent {event_type = t, state = m, keycode = code})
handle e@(ConfigureRequestEvent {}) = do handle e@(ConfigureRequestEvent {}) = do
dpy <- gets display dpy <- gets display
ws <- gets workspace
let w = window e
when (W.member w ws) $ -- already managed, reconfigure (see client:configure()
trace ("Reconfigure already managed window: " ++ show w)
io $ configureWindow dpy (window e) (value_mask e) $ WindowChanges io $ configureWindow dpy (window e) (value_mask e) $ WindowChanges
{ wcX = x e { wcX = x e
, wcY = y e , wcY = y e
, wcWidth = width e , wcWidth = width e
, wcHeight = height e , wcHeight = height e
, wcBorderWidth = border_width e , wcBorderWidth = border_width e
, wcSibling = above e , wcSibling = above e
, wcStackMode = detail e , wcStackMode = detail e
} }
io $ sync dpy False io $ sync dpy False
handle e = trace (eventName e) handle e = trace (eventName e)