package main import ( "citrons.xyz/talk/client/window" ) func (a *application) removeFromHistory(location window.Location) { for i := len(a.windowHist) - 1; i >= 0; i-- { if a.windowHist[i] != location { continue } if i < len(a.windowHist) - 1 { a.windowHist = append(a.windowHist[:i], a.windowHist[i + 1:]...) } else { a.windowHist = a.windowHist[:i] } break } } func (a *application) traverseHistory(direction int) { var i int for i = 0; i < len(a.windowHist); i++ { if a.windowHist[i] == a.currentWindow { break } } i += direction if i >= 0 && i < len(a.windowHist) { a.currentWindow = a.windowHist[i] } } func (a *application) goTo(location window.Location) { a.removeFromHistory(location) a.windowHist = append(a.windowHist, location) a.currentWindow = location }