first shot at allowing click to focus windows

This commit is contained in:
daniel
2007-03-28 10:15:40 +00:00
parent 97638a648c
commit 5ae3c6a1fc
4 changed files with 32 additions and 16 deletions

19
Main.hs
View File

@@ -120,6 +120,14 @@ grabKeys dpy rootw = do
-- Window manager clients normally should ignore this window if the
-- override_redirect member is True.
--
safeFocus :: Window -> X ()
safeFocus w = do ws <- gets workspace
if W.member w ws
then setFocus w
else do b <- isRoot w
when b setTopFocus
handle :: Event -> X ()
-- run window manager command
@@ -148,14 +156,15 @@ handle e@(MappingNotifyEvent {window = w}) = do
io $ refreshKeyboardMapping m
when (request e == mappingKeyboard) $ withDisplay $ io . flip grabKeys w
-- click on an unfocussed window
handle (ButtonEvent {window = w, event_type = t})
| t == buttonPress
= safeFocus w
-- entered a normal window
handle e@(CrossingEvent {window = w, event_type = t})
| t == enterNotify && mode e == notifyNormal && detail e /= notifyInferior
= do ws <- gets workspace
if W.member w ws
then setFocus w
else do b <- isRoot w
when b setTopFocus
= safeFocus w
-- left a window, check if we need to focus root
handle e@(CrossingEvent {event_type = t})