From 595d9116f0d3c75cb44b2e5f16bbbca6cf0da0e5 Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Thu, 2 Mar 2023 20:27:08 -0800 Subject: [PATCH] close image popup and add to playlist dialog on escape --- ui/controller/controller.go | 2 ++ ui/util/util.go | 13 ++++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ui/controller/controller.go b/ui/controller/controller.go index 385f453..ce848f6 100644 --- a/ui/controller/controller.go +++ b/ui/controller/controller.go @@ -42,6 +42,7 @@ func (m Controller) ShowPopUpImage(img image.Image) { w := s.Width * 0.8 popS = fyne.NewSize(w, w*(1/asp)) } + util.ClosePopUpOnEscape(pop) pop.Resize(popS) pop.ShowAtPosition(fyne.NewPos( (s.Width-popS.Width)/2, @@ -120,6 +121,7 @@ func (m Controller) DoAddTracksToPlaylistWorkflow(trackIDs []string) { dlg := dialogs.NewAddToPlaylistDialog("Add to Playlist", plNames) pop := widget.NewModalPopUp(dlg, m.MainWindow.Canvas()) + util.ClosePopUpOnEscape(pop) dlg.OnCanceled = pop.Hide dlg.OnSubmit = func(playlistChoice int, newPlaylistName string) { pop.Hide() diff --git a/ui/util/util.go b/ui/util/util.go index edce626..2011c57 100644 --- a/ui/util/util.go +++ b/ui/util/util.go @@ -27,11 +27,6 @@ func ImageAspect(im image.Image) float32 { return float32(b.Max.X-b.Min.X) / float32(b.Max.Y-b.Min.Y) } -type PopUpProvider interface { - CreatePopUp(fyne.CanvasObject) *widget.PopUp - WindowSize() fyne.Size -} - func RichTextSegsFromHTMLString(s string) []widget.RichTextSegment { tokr := html.NewTokenizer(strings.NewReader(s)) var segs []widget.RichTextSegment @@ -59,3 +54,11 @@ func RichTextSegsFromHTMLString(s string) []widget.RichTextSegment { return segs } + +func ClosePopUpOnEscape(pop *widget.PopUp) { + pop.Canvas.SetOnTypedKey(func(e *fyne.KeyEvent) { + if e.Name == fyne.KeyEscape { + pop.Hide() + } + }) +}