From a00b395692b74afcfb857ad83557eaf4ec2801da Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Sat, 27 Apr 2024 09:53:22 -0700 Subject: [PATCH] reset focus whenever navigating between pages, not just back/forward --- ui/browsing/browsingpane.go | 4 ++++ ui/mainwindow.go | 3 --- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ui/browsing/browsingpane.go b/ui/browsing/browsingpane.go index 6168c15..7317141 100644 --- a/ui/browsing/browsingpane.go +++ b/ui/browsing/browsingpane.go @@ -197,6 +197,10 @@ func (b *BrowsingPane) doSetPage(p Page) bool { if b.curPage != nil && b.curPage.Route() == p.Route() { return false } + // TODO: reset focus only if something inside the previous page had focus + if c := fyne.CurrentApp().Driver().CanvasForObject(b); c != nil { + c.Focus(nil) + } b.curPage = p if np, ok := p.(CanShowNowPlaying); ok { // inform page of currently playing track diff --git a/ui/mainwindow.go b/ui/mainwindow.go index 52f972f..8d20916 100644 --- a/ui/mainwindow.go +++ b/ui/mainwindow.go @@ -268,14 +268,11 @@ func (m *MainWindow) addShortcuts() { for _, sh := range os.BackShortcuts { m.Canvas().AddShortcut(&sh, func(_ fyne.Shortcut) { m.BrowsingPane.GoBack() - // TODO: reset focus only if something inside the page had focus - m.Canvas().Focus(nil) }) } for _, sh := range os.ForwardShortcuts { m.Canvas().AddShortcut(&sh, func(_ fyne.Shortcut) { m.BrowsingPane.GoForward() - m.Canvas().Focus(nil) }) } if os.SettingsShortcut != nil {