From d9f43c78d615030b180a40a7b9cb678faa09797f Mon Sep 17 00:00:00 2001 From: Michael Sloan Date: Wed, 23 Jan 2019 22:15:21 -0800 Subject: [PATCH] Fix XMonad.Prompt wraparound when maxComplRows not Nothing #217 --- CHANGES.md | 4 ++++ XMonad/Prompt.hs | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 405e142585..5591effa0f 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -35,6 +35,10 @@ Added `sorter` to `XPConfig` used to sort the possible completions by how well they match the search string (example: `XMonad.Prompt.FuzzyMatch`). + Fixes [issue #217](https://github.com/xmonad/xmonad-contrib/issues/217), where + using tab to wrap around the completion rows would fail when maxComplRows is + restricting the number of rows of output. + ## 0.15 ### Breaking Changes diff --git a/XMonad/Prompt.hs b/XMonad/Prompt.hs index 9415418559..987b5a895d 100644 --- a/XMonad/Prompt.hs +++ b/XMonad/Prompt.hs @@ -851,8 +851,8 @@ bufferOne xs x = (null xs && null x,True) nextComplIndex :: XPState -> Int -> (Int,Int) nextComplIndex st nitems = case complWinDim st of Nothing -> (0,0) --no window dims (just destroyed or not created) - Just (_,_,_,_,_,yy) -> let - (ncols,nrows) = (nitems `div` length yy + if (nitems `mod` length yy > 0) then 1 else 0, length yy) + Just (_,_,_,_,xx,yy) -> let + (ncols,nrows) = (length xx, length yy) (currentcol,currentrow) = complIndex st in if (currentcol + 1 >= ncols) then --hlight is in the last column if (currentrow + 1 < nrows ) then --hlight is still not at the last row