mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-07-31 04:01:51 -07:00
@@ -491,6 +491,8 @@
|
||||
- Added `focusWindow` and `focusNth` which don't refresh (and thus
|
||||
possibly flicker) when they happen to be a no-op.
|
||||
|
||||
- Added `shiftWin` as a refresh tracking version of `W.shiftWin`.
|
||||
|
||||
* Several `LayoutClass` instances now have an additional `Typeable`
|
||||
constraint which may break some advanced configs. The upside is that we
|
||||
can now add `Typeable` to `LayoutClass` in `XMonad.Core` and make it
|
||||
|
@@ -46,7 +46,7 @@ module XMonad.Util.PureX (
|
||||
getStack, putStack, peek,
|
||||
focusWindow, focusNth,
|
||||
view, greedyView, invisiView,
|
||||
shift, curScreen, curWorkspace,
|
||||
shift, shiftWin, curScreen, curWorkspace,
|
||||
curTag, curScreenId,
|
||||
) where
|
||||
|
||||
@@ -271,6 +271,16 @@ shift tag = withFocii $ \ctag fw ->
|
||||
mfw' <- peek
|
||||
return (Any $ Just fw /= mfw')
|
||||
|
||||
-- | A refresh tracking version of @W.shiftWin@.
|
||||
shiftWin :: XLike m => WorkspaceId -> Window -> m Any
|
||||
shiftWin tag w = do
|
||||
mtag <- gets $ W.findTag w . windowset
|
||||
whenJust' mtag $ \wtag ->
|
||||
when' (tag /= wtag) $ do
|
||||
modifyWindowSet' $ W.shiftWin tag w
|
||||
ntag <- gets $ W.findTag w . windowset
|
||||
return (Any $ mtag /= ntag)
|
||||
|
||||
-- | Internal. Refresh-tracking logic of focus operations.
|
||||
focusWith :: XLike m => (WindowSet -> WindowSet) -> m Any
|
||||
focusWith focuser = do
|
||||
|
Reference in New Issue
Block a user