mirror of
https://github.com/xmonad/xmonad.git
synced 2025-05-19 08:30:21 -07:00
whitespace. and note if we get a config request for an already managed window
This commit is contained in:
parent
1ca37d5385
commit
6d613c7cc4
38
Main.hs
38
Main.hs
@ -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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user