diff --git a/ui/browsing/browsingpane.go b/ui/browsing/browsingpane.go index 064449a..91e76d3 100644 --- a/ui/browsing/browsingpane.go +++ b/ui/browsing/browsingpane.go @@ -209,7 +209,10 @@ func (b *BrowsingPane) Reload() { } } -func (b *BrowsingPane) CurPage() controller.Route { +func (b *BrowsingPane) CurrentPage() controller.Route { + if b.curPage == nil { + return controller.Route{Page: controller.Blank} + } return b.curPage.Route() } diff --git a/ui/browsing/router.go b/ui/browsing/router.go index c71a65c..07a2d69 100644 --- a/ui/browsing/router.go +++ b/ui/browsing/router.go @@ -7,6 +7,7 @@ import ( type NavigationHandler interface { SetPage(Page) + CurrentPage() controller.Route } type Router struct { @@ -53,5 +54,7 @@ func (r Router) CreatePage(rte controller.Route) Page { } func (r Router) NavigateTo(rte controller.Route) { - r.Nav.SetPage(r.CreatePage(rte)) + if rte != r.Nav.CurrentPage() { + r.Nav.SetPage(r.CreatePage(rte)) + } } diff --git a/ui/mainwindow.go b/ui/mainwindow.go index 6a24241..17bbf5c 100644 --- a/ui/mainwindow.go +++ b/ui/mainwindow.go @@ -65,7 +65,7 @@ func NewMainWindow(fyneApp fyne.App, appName, appVersion string, app *backend.Ap // inject controller dependencies m.Controller.NavHandler = m.Router.NavigateTo m.Controller.ReloadFunc = m.BrowsingPane.Reload - m.Controller.CurPageFunc = m.BrowsingPane.CurPage + m.Controller.CurPageFunc = m.BrowsingPane.CurrentPage m.BottomPanel = NewBottomPanel(app.Player, m.Controller) m.BottomPanel.SetPlaybackManager(app.PlaybackManager)