Improve scroll selection
This commit is contained in:
@@ -152,7 +152,10 @@ changeSwapSelSet yi w
|
||||
|
||||
swapSelSet :: (Int -> IS.IntSet -> World -> World) -> World -> World
|
||||
swapSelSet f w = fromMaybe w $ do
|
||||
Sel j _ is <- w ^. hud . diSelection
|
||||
Sel j i is' <- w ^. hud . diSelection
|
||||
let is = if IS.null is'
|
||||
then IS.singleton i
|
||||
else is'
|
||||
return $
|
||||
if concurrentIS is
|
||||
then f j is w
|
||||
@@ -224,7 +227,10 @@ multiSelScroll' f w = fromMaybe w $ do
|
||||
Sel j i is <- w ^. hud . diSelection
|
||||
ss <- w ^? hud . diSections . ix j . ssItems
|
||||
k <- f i ss
|
||||
let insertordelete = if k `IS.member` is then IS.delete i else IS.insert i . IS.insert k
|
||||
let insertordelete
|
||||
| not (i `IS.member` is) && k `IS.member` is = IS.delete k
|
||||
| k `IS.member` is = IS.delete i
|
||||
| otherwise = IS.insert i . IS.insert k
|
||||
return $
|
||||
w
|
||||
& hud . diSelection . _Just . slSet %~ insertordelete
|
||||
|
||||
Reference in New Issue
Block a user