Hello community, here is the log from the commit of package xmonad for openSUSE:Factory checked in at 2018-10-25 08:20:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xmonad (Old) and /work/SRC/openSUSE:Factory/.xmonad.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xmonad" Thu Oct 25 08:20:05 2018 rev:4 rq:642918 version:0.15 Changes: -------- --- /work/SRC/openSUSE:Factory/xmonad/xmonad.changes 2018-08-27 12:58:27.352757650 +0200 +++ /work/SRC/openSUSE:Factory/.xmonad.new/xmonad.changes 2018-10-25 08:20:16.959966730 +0200 @@ -1,0 +2,19 @@ +Thu Oct 4 09:42:58 UTC 2018 - [email protected] + +- Update xmonad to version 0.15. + ## 0.15 (September 30, 2018) + + * Reimplement `sendMessage` to deal properly with windowset changes made + during handling. + + * Add new library functions `windowBracket` and `modifyWindowSet` to + `XMonad.Operations`. + + ## 0.14.2 (August 21, 2018) + + ### Bug Fixes + + * Add the sample configuration file xmonad.hs again to the release tarball. + [https://github.com/xmonad/xmonad/issues/181] + +------------------------------------------------------------------- Old: ---- xmonad-0.14.2.tar.gz New: ---- xmonad-0.15.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xmonad.spec ++++++ --- /var/tmp/diff_new_pack.2ZmHVd/_old 2018-10-25 08:20:17.827966344 +0200 +++ /var/tmp/diff_new_pack.2ZmHVd/_new 2018-10-25 08:20:17.831966342 +0200 @@ -12,14 +12,14 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # %global pkg_name xmonad %bcond_with tests Name: %{pkg_name} -Version: 0.14.2 +Version: 0.15 Release: 0 Summary: A tiling window manager License: BSD-3-Clause ++++++ xmonad-0.14.2.tar.gz -> xmonad-0.15.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmonad-0.14.2/CHANGES.md new/xmonad-0.15/CHANGES.md --- old/xmonad-0.14.2/CHANGES.md 2018-08-21 10:01:48.000000000 +0200 +++ new/xmonad-0.15/CHANGES.md 1970-01-01 01:00:00.000000000 +0100 @@ -2,6 +2,21 @@ ## unknown (unknown) +## 0.15 (September 30, 2018) + + * Reimplement `sendMessage` to deal properly with windowset changes made + during handling. + + * Add new library functions `windowBracket` and `modifyWindowSet` to + `XMonad.Operations`. + +## 0.14.2 (August 21, 2018) + +### Bug Fixes + + * Add the sample configuration file xmonad.hs again to the release tarball. + [https://github.com/xmonad/xmonad/issues/181] + ## 0.14.1 (August 20, 2018) ### Breaking Changes diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmonad-0.14.2/man/xmonad.1 new/xmonad-0.15/man/xmonad.1 --- old/xmonad-0.14.2/man/xmonad.1 2018-08-21 10:01:48.000000000 +0200 +++ new/xmonad-0.15/man/xmonad.1 1970-01-01 01:00:00.000000000 +0100 @@ -1,6 +1,6 @@ .\" Automatically generated by Pandoc 2.2.1 .\" -.TH "XMONAD" "1" "20 August 2018" "Tiling Window Manager" "" +.TH "XMONAD" "1" "30 September 2018" "Tiling Window Manager" "" .hy .SH Name .PP diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmonad-0.14.2/man/xmonad.1.html new/xmonad-0.15/man/xmonad.1.html --- old/xmonad-0.14.2/man/xmonad.1.html 2018-08-21 10:01:48.000000000 +0200 +++ new/xmonad-0.15/man/xmonad.1.html 1970-01-01 01:00:00.000000000 +0100 @@ -5,7 +5,7 @@ <meta name="generator" content="pandoc" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> <meta name="author" content="" /> - <meta name="dcterms.date" content="2018-08-20" /> + <meta name="dcterms.date" content="2018-09-30" /> <title>XMONAD(1) Tiling Window Manager</title> <style type="text/css"> code{white-space: pre-wrap;} @@ -84,7 +84,7 @@ <header> <h1 class="title">XMONAD(1) Tiling Window Manager</h1> <p class="author"></p> -<p class="date">20 August 2018</p> +<p class="date">30 September 2018</p> </header> <nav id="TOC"> <ul> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmonad-0.14.2/man/xmonad.1.markdown new/xmonad-0.15/man/xmonad.1.markdown --- old/xmonad-0.14.2/man/xmonad.1.markdown 2018-08-21 10:01:48.000000000 +0200 +++ new/xmonad-0.15/man/xmonad.1.markdown 1970-01-01 01:00:00.000000000 +0100 @@ -1,6 +1,6 @@ % XMONAD(1) Tiling Window Manager % -% 20 August 2018 +% 30 September 2018 # Name diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmonad-0.14.2/src/XMonad/Operations.hs new/xmonad-0.15/src/XMonad/Operations.hs --- old/xmonad-0.14.2/src/XMonad/Operations.hs 2018-08-21 10:01:48.000000000 +0200 +++ new/xmonad-0.15/src/XMonad/Operations.hs 1970-01-01 01:00:00.000000000 +0100 @@ -21,7 +21,7 @@ import qualified XMonad.StackSet as W import Data.Maybe -import Data.Monoid (Endo(..)) +import Data.Monoid (Endo(..),Any(..)) import Data.List (nub, (\\), find) import Data.Bits ((.|.), (.&.), complement, testBit) import Data.Ratio @@ -30,6 +30,7 @@ import Control.Applicative((<$>), (<*>)) import Control.Arrow (second) +import Control.Monad (void) import Control.Monad.Reader import Control.Monad.State import qualified Control.Exception.Extensible as C @@ -176,6 +177,25 @@ unless isMouseFocused $ clearEvents enterWindowMask asks (logHook . config) >>= userCodeDef () +-- | Modify the @WindowSet@ in state with no special handling. +modifyWindowSet :: (WindowSet -> WindowSet) -> X () +modifyWindowSet f = modify $ \xst -> xst { windowset = f (windowset xst) } + +-- | Perform an @X@ action and check its return value against a predicate p. +-- If p holds, unwind changes to the @WindowSet@ and replay them using @windows@. +windowBracket :: (a -> Bool) -> X a -> X a +windowBracket p action = withWindowSet $ \old -> do + a <- action + when (p a) . withWindowSet $ \new -> do + modifyWindowSet $ \_ -> old + windows $ \_ -> new + return a + +-- | A version of @windowBracket@ that discards the return value, and handles an +-- @X@ action reporting its need for refresh via @Any@. +windowBracket_ :: X Any -> X () +windowBracket_ = void . windowBracket getAny + -- | Produce the actual rectangle from a screen and a ratio on that screen. scaleRationalRect :: Rectangle -> W.RationalRect -> Rectangle scaleRationalRect (Rectangle sx sy sw sh) (W.RationalRect rx ry rw rh) @@ -371,15 +391,16 @@ -- Message handling -- | Throw a message to the current 'LayoutClass' possibly modifying how we --- layout the windows, then refresh. +-- layout the windows, in which case changes are handled through a refresh. sendMessage :: Message a => a -> X () -sendMessage a = do +sendMessage a = windowBracket_ $ do w <- W.workspace . W.current <$> gets windowset ml' <- handleMessage (W.layout w) (SomeMessage a) `catchX` return Nothing whenJust ml' $ \l' -> - windows $ \ws -> ws { W.current = (W.current ws) + modifyWindowSet $ \ws -> ws { W.current = (W.current ws) { W.workspace = (W.workspace $ W.current ws) { W.layout = l' }}} + return (Any $ isJust ml') -- | Send a message to all layouts, without refreshing. broadcastMessage :: Message a => a -> X () diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmonad-0.14.2/tests/Properties/Delete.hs new/xmonad-0.15/tests/Properties/Delete.hs --- old/xmonad-0.14.2/tests/Properties/Delete.hs 2018-08-21 10:01:48.000000000 +0200 +++ new/xmonad-0.15/tests/Properties/Delete.hs 1970-01-01 01:00:00.000000000 +0100 @@ -18,7 +18,7 @@ where _ = x :: T -- delete is reversible with 'insert'. --- It is the identiy, except for the 'master', which is reset on insert and delete. +-- It is the identity, except for the 'master', which is reset on insert and delete. -- prop_delete_insert (x :: T) = case peek x of diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xmonad-0.14.2/xmonad.cabal new/xmonad-0.15/xmonad.cabal --- old/xmonad-0.14.2/xmonad.cabal 2018-08-21 10:01:48.000000000 +0200 +++ new/xmonad-0.15/xmonad.cabal 1970-01-01 01:00:00.000000000 +0100 @@ -1,5 +1,5 @@ name: xmonad -version: 0.14.2 +version: 0.15 synopsis: A tiling window manager description: xmonad is a tiling window manager for X. Windows are arranged automatically to tile the screen without gaps or overlap, maximising
