diff --git a/internal/driver/gomobile/canvas.go b/internal/driver/gomobile/canvas.go index 205c097383..a10f2bf4fd 100644 --- a/internal/driver/gomobile/canvas.go +++ b/internal/driver/gomobile/canvas.go @@ -121,6 +121,17 @@ func (c *mobileCanvas) sizeContent(size fyne.Size) { topLeft := offset.Add(fyne.NewPos(devicePadTopLeft.Width, devicePadTopLeft.Height)) c.size = size + for _, overlay := range c.overlays.List() { + if p, ok := overlay.(*widget.PopUp); ok { + // TODO: remove this when #707 is being addressed. + // “Notifies” the PopUp of the canvas size change. + size := p.Content.Size().Add(fyne.NewSize(theme.Padding()*2, theme.Padding()*2)).Min(innerSize) + p.Resize(size) + } else { + overlay.Resize(innerSize) + overlay.Move(topLeft) + } + } if c.padded { c.content.Resize(innerSize.Subtract(fyne.NewSize(theme.Padding()*2, theme.Padding()*2))) c.content.Move(topLeft.Add(fyne.NewPos(theme.Padding(), theme.Padding())))