X.H.Rescreen: Catch exceptions in user-provided hooks in add*Hook

This way a single failing hook won't disturb other hooks (not just
rescreen hooks, also other event hooks).
This commit is contained in:
Tomas Janousek
2022-02-03 11:53:54 +00:00
parent 7445390432
commit 2e3254a908

View File

@@ -98,11 +98,11 @@ rescreenHook = XC.once $ \c -> c
-- | Shortcut for 'rescreenHook'.
addAfterRescreenHook :: X () -> XConfig l -> XConfig l
addAfterRescreenHook h = rescreenHook def{ afterRescreenHook = h }
addAfterRescreenHook h = rescreenHook def{ afterRescreenHook = userCodeDef () h }
-- | Shortcut for 'rescreenHook'.
addRandrChangeHook :: X () -> XConfig l -> XConfig l
addRandrChangeHook h = rescreenHook def{ randrChangeHook = h }
addRandrChangeHook h = rescreenHook def{ randrChangeHook = userCodeDef () h }
-- | Startup hook to listen for @RRScreenChangeNotify@ events.
rescreenStartupHook :: X ()