From 69a109cfa1a70a9f7a2a8aef5f623aa7575c3cf9 Mon Sep 17 00:00:00 2001 From: Andy Williams Date: Wed, 13 Jan 2021 22:16:43 +0000 Subject: [PATCH] Fix location of mobile popups by fixing the absolute position lookup --- internal/driver/gomobile/driver.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/internal/driver/gomobile/driver.go b/internal/driver/gomobile/driver.go index 6ef1ab45cc..6b620f08b2 100644 --- a/internal/driver/gomobile/driver.go +++ b/internal/driver/gomobile/driver.go @@ -21,6 +21,7 @@ import ( "fyne.io/fyne/internal/painter" pgl "fyne.io/fyne/internal/painter/gl" "fyne.io/fyne/theme" + "fyne.io/fyne/widget" ) const tapSecondaryDelay = 300 * time.Millisecond @@ -83,7 +84,16 @@ func (d *mobileDriver) AbsolutePositionForObject(co fyne.CanvasObject) fyne.Posi } mc := c.(*mobileCanvas) - return driver.AbsolutePositionForObject(co, mc.objectTrees()) + pos := driver.AbsolutePositionForObject(co, mc.objectTrees()) + inset, _ := c.InteractiveArea() + + if mc.windowHead != nil { + if len(mc.windowHead.(*widget.Box).Children) > 1 { + topHeight := mc.windowHead.MinSize().Height + pos = pos.Subtract(fyne.NewSize(0, topHeight)) + } + } + return pos.Subtract(inset) } func (d *mobileDriver) Quit() {