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


Reply via email to