<div dir="ltr"><div>Hello!</div><div><br></div><div> Please tell me what you think, of both the patch and the process I'm sending this in-by.  First time for both.  </div><div><br></div><div>Thanks!</div><div><br></div><div>1 patch for repository <a href="http://code.haskell.org/xmonad">http://code.haskell.org/xmonad</a>:</div><div><br></div><div>Thu Feb 26 10:22:06 EST 2015  <a href="mailto:lally.singh@gmail.com">lally.singh@gmail.com</a></div><div>  * Split out the X event get function from xmonad.</div><div><br></div><div>  This lets xmonad users specify their own functions that get the next X event,</div><div>  and consequently have access to the Display and run in xmonad's thread.  Useful</div><div>  for providing such access to other threads.</div><div><br></div><div><br></div><div><br></div><div>New patches:</div><div><br></div><div>[Split out the X event get function from xmonad.</div><div><a href="mailto:lally.singh@gmail.com">lally.singh@gmail.com</a>**20150226152206</div><div> Ignore-this: de10517364b9c642552ff62ebb614d28</div><div><br></div><div> This lets xmonad users specify their own functions that get the next X event,</div><div> and consequently have access to the Display and run in xmonad's thread.  Useful</div><div> for providing such access to other threads.</div><div><br></div><div>] {</div><div>hunk ./src/XMonad/Main.hs 49</div><div> -- The main entry point</div><div> --</div><div> xmonad :: (LayoutClass l Window, Read (l Window)) => XConfig l -> IO ()</div><div>-xmonad initxmc = do</div><div>+xmonad initxmc = xmonad' defaultEventGetter initxmc</div><div>+</div><div>+-- | Default X event getter.</div><div>+defaultEventGetter :: Display -> XEventPtr -> X Event</div><div>+defaultEventGetter _ = io . getEvent</div><div>+</div><div>+-- | Actual entry point, with a parameter for the X event getter.  The getter</div><div>+-- has access to the X event loop.</div><div>+xmonad' :: (LayoutClass l Window, Read (l Window)) => (Display -> XEventPtr -> X Event) -> XConfig l -> IO ()</div><div>+xmonad' eventGetter initxmc = do</div><div>     -- setup locale information from environment</div><div>     setLocale LC_ALL Nothing</div><div>     -- ignore SIGPIPE and SIGCHLD</div><div>hunk ./src/XMonad/Main.hs 158</div><div>             userCode $ startupHook initxmc</div><div><br></div><div>             -- main loop, for all you HOF/recursion fans out there.</div><div>-            forever $ prehandle =<< io (nextEvent dpy e >> getEvent e)</div><div>+            forever $ prehandle =<< eventGetter dpy e</div><div><br></div><div>     return ()</div><div>       where</div><div>}</div><div><br></div></div>