Skip to content

Commit fb06543

Browse files
coolapsoandydotxyz
authored andcommitted
fix gridwarp navigation
fixes: #5994
1 parent c618c00 commit fb06543

File tree

2 files changed

+40
-6
lines changed

2 files changed

+40
-6
lines changed

widget/gridwrap.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -270,9 +270,6 @@ func (l *GridWrap) TypedKey(event *fyne.KeyEvent) {
270270
if l.currentFocus <= 0 {
271271
return
272272
}
273-
if l.currentFocus%l.ColumnCount() == 0 {
274-
return
275-
}
276273

277274
l.RefreshItem(l.currentFocus)
278275
l.currentFocus--
@@ -282,9 +279,6 @@ func (l *GridWrap) TypedKey(event *fyne.KeyEvent) {
282279
if f := l.Length; f != nil && l.currentFocus >= f()-1 {
283280
return
284281
}
285-
if (l.currentFocus+1)%l.ColumnCount() == 0 {
286-
return
287-
}
288282

289283
l.RefreshItem(l.currentFocus)
290284
l.currentFocus++

widget/gridwrap_test.go

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,3 +253,43 @@ func TestGridWrap_ResizeToSameSizeBeforeRender(t *testing.T) {
253253
// will crash if GridWrap scroller (not yet created) is accessed
254254
g.Resize(fyne.NewSize(0, 0))
255255
}
256+
257+
func TestGridWrap_TypedKey(t *testing.T) {
258+
gridWrap := createGridWrap(20)
259+
window := test.NewWindow(gridWrap)
260+
defer window.Close()
261+
window.Resize(fyne.NewSize(80, 100))
262+
263+
// want 3 columns to make assert navigaiton behavior
264+
assert.Equal(t, 3, gridWrap.ColumnCount())
265+
266+
canvas := window.Canvas().(test.WindowlessCanvas)
267+
canvas.FocusNext()
268+
gridWrap.TypedKey(&fyne.KeyEvent{Name: fyne.KeyDown})
269+
assert.Equal(t, 3, gridWrap.currentHighlight)
270+
271+
gridWrap.TypedKey(&fyne.KeyEvent{Name: fyne.KeyUp})
272+
assert.Equal(t, 0, gridWrap.currentHighlight)
273+
274+
gridWrap.TypedKey(&fyne.KeyEvent{Name: fyne.KeyLeft})
275+
assert.Equal(t, 0, gridWrap.currentHighlight)
276+
277+
gridWrap.TypedKey(&fyne.KeyEvent{Name: fyne.KeyRight})
278+
assert.Equal(t, 1, gridWrap.currentHighlight)
279+
280+
gridWrap.TypedKey(&fyne.KeyEvent{Name: fyne.KeyRight})
281+
assert.Equal(t, 2, gridWrap.currentHighlight)
282+
283+
gridWrap.TypedKey(&fyne.KeyEvent{Name: fyne.KeyRight})
284+
assert.Equal(t, 3, gridWrap.currentHighlight)
285+
286+
gridWrap.TypedKey(&fyne.KeyEvent{Name: fyne.KeyLeft})
287+
assert.Equal(t, 2, gridWrap.currentHighlight)
288+
289+
gridWrap.TypedKey(&fyne.KeyEvent{Name: fyne.KeySpace})
290+
assert.Equal(t, []int{2}, gridWrap.selected)
291+
292+
gridWrap.currentHighlight = 20
293+
gridWrap.TypedKey(&fyne.KeyEvent{Name: fyne.KeyRight})
294+
assert.Equal(t, 20, gridWrap.currentHighlight)
295+
}

0 commit comments

Comments
 (0)