[11:45:16 glfw/canvas.go:394 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s internal/driver/glfw/canvas.go:paint() 0.009s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:87, Height:29}, position: fyne.Position{X:4, Y:4}, Hidden: false, impl: &widget.Label{(CYCLIC REFERENCE)}, propertyLock: sync.RWMutex{}, }, Text: "Hello Fyne!", Alignment: 0, Wrapping: 0, TextStyle: fyne.TextStyle{}, provider: &widget.textProvider{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:87, Height:29}, position: fyne.Position{}, Hidden: false, impl: &widget.Label{(CYCLIC REFERENCE)}, propertyLock: sync.RWMutex{}, }, presenter: &widget.Label{(CYCLIC REFERENCE)}, buffer: {72, 101, 108, 108, 111, 32, 70, 121, 110, 101, 33}, rowBounds: { {0, 11}, }, }, }, menu: nil, overlays: &glfw.overlayStack{ OverlayStack: internal.OverlayStack{}, onChange: func() {...}, renderCaches: nil, }, padded: true, size: fyne.Size{Width:95, Height:37}, focused: nil, focusMgr: &app.FocusManager{ canvas: &glfw.glCanvas{(CYCLIC REFERENCE)}, }, onTypedRune: func(int32) {...}, onTypedKey: func(*fyne.KeyEvent) {...}, onKeyDown: func(*fyne.KeyEvent) {...}, onKeyUp: func(*fyne.KeyEvent) {...}, shortcut: fyne.ShortcutHandler{}, scale: 1, detectedScale: 1, texScale: 1, painter: &gl.glPainter{ canvas: &glfw.glCanvas{(CYCLIC REFERENCE)}, context: &glfw.window{ viewport: &glfw.Window{ data: &glfw._Ctype_struct_GLFWwindow{}, fPosHolder: func(*glfw.Window, int, int) {...}, fSizeHolder: func(*glfw.Window, int, int) {...}, fFramebufferSizeHolder: func(*glfw.Window, int, int) {...}, fCloseHolder: func(*glfw.Window) {...}, fMaximizeHolder: func(*glfw.Window, bool) {...}, fContentScaleHolder: func(*glfw.Window, float32, float32) {...}, fRefreshHolder: func(*glfw.Window) {...}, fFocusHolder: func(*glfw.Window, bool) {...}, fIconifyHolder: func(*glfw.Window, bool) {...}, fMouseButtonHolder: func(*glfw.Window, glfw.MouseButton, glfw.Action, glfw.ModifierKey) {...}, fCursorPosHolder: func(*glfw.Window, float64, float64) {...}, fCursorEnterHolder: func(*glfw.Window, bool) {...}, fScrollHolder: func(*glfw.Window, float64, float64) {...}, fKeyHolder: func(*glfw.Window, glfw.Key, int, glfw.Action, glfw.ModifierKey) {...}, fCharHolder: func(*glfw.Window, int32) {...}, fCharModsHolder: func(*glfw.Window, int32, glfw.ModifierKey) {...}, fDropHolder: func(*glfw.Window, []string) {...}, }, viewLock: sync.RWMutex{}, createLock: sync.Once{ done: 0x1, m: sync.Mutex{}, }, decorate: true, fixedSize: false, cursor: (*glfw.Cursor)(nil), canvas: &glfw.glCanvas{(CYCLIC REFERENCE)}, title: "Hello", icon: nil, mainmenu: (*fyne.MainMenu)(nil), clipboard: nil, master: false, fullScreen: false, centered: false, visible: true, mousePos: fyne.Position{}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 0, ypos: 0, width: 95, height: 37, shouldExpand: true, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, program: 0x3, texScale: 1, }, dirty: true, dirtyMutex: &sync.Mutex{}, refreshQueue: 0xc00006c540, contentTree: &glfw.renderCacheTree{ RWMutex: sync.RWMutex{}, root: &glfw.renderCacheNode{ firstChild: &glfw.renderCacheNode{ firstChild: (*glfw.renderCacheNode)(nil), nextSibling: (*glfw.renderCacheNode)(nil), obj: &canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:79, Height:21}, position: fyne.Position{X:4, Y:4}, Hidden: false, min: fyne.Size{}, propertyLock: sync.RWMutex{}, }, Alignment: 0, Color: color.NRGBA{R:0xff, G:0xff, B:0xff, A:0xff}, Text: "Hello Fyne!", TextSize: 14, TextStyle: fyne.TextStyle{}, }, parent: &glfw.renderCacheNode{(CYCLIC REFERENCE)}, minSize: fyne.Size{Width:79, Height:21}, painterData: nil, }, nextSibling: (*glfw.renderCacheNode)(nil), obj: &widget.Label{(CYCLIC REFERENCE)}, parent: (*glfw.renderCacheNode)(nil), minSize: fyne.Size{Width:87, Height:29}, painterData: nil, }, }, menuTree: (*glfw.renderCacheTree)(nil), context: &glfw.window{ viewport: &glfw.Window{ data: &glfw._Ctype_struct_GLFWwindow{}, fPosHolder: func(*glfw.Window, int, int) {...}, fSizeHolder: func(*glfw.Window, int, int) {...}, fFramebufferSizeHolder: func(*glfw.Window, int, int) {...}, fCloseHolder: func(*glfw.Window) {...}, fMaximizeHolder: func(*glfw.Window, bool) {...}, fContentScaleHolder: func(*glfw.Window, float32, float32) {...}, fRefreshHolder: func(*glfw.Window) {...}, fFocusHolder: func(*glfw.Window, bool) {...}, fIconifyHolder: func(*glfw.Window, bool) {...}, fMouseButtonHolder: func(*glfw.Window, glfw.MouseButton, glfw.Action, glfw.ModifierKey) {...}, fCursorPosHolder: func(*glfw.Window, float64, float64) {...}, fCursorEnterHolder: func(*glfw.Window, bool) {...}, fScrollHolder: func(*glfw.Window, float64, float64) {...}, fKeyHolder: func(*glfw.Window, glfw.Key, int, glfw.Action, glfw.ModifierKey) {...}, fCharHolder: func(*glfw.Window, int32) {...}, fCharModsHolder: func(*glfw.Window, int32, glfw.ModifierKey) {...}, fDropHolder: func(*glfw.Window, []string) {...}, }, viewLock: sync.RWMutex{}, createLock: sync.Once{ done: 0x1, m: sync.Mutex{}, }, decorate: true, fixedSize: false, cursor: (*glfw.Cursor)(nil), canvas: &glfw.glCanvas{(CYCLIC REFERENCE)}, title: "Hello", icon: nil, mainmenu: (*fyne.MainMenu)(nil), clipboard: nil, master: false, fullScreen: false, centered: false, visible: true, mousePos: fyne.Position{}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 0, ypos: 0, width: 95, height: 37, shouldExpand: true, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.010s size=fyne.Size{Width:95, Height:37} [11:45:16 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s internal/painter/gl/painter.go:Paint() 0.007s p=&gl.glPainter{ canvas: &glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:87, Height:29}, position: fyne.Position{X:4, Y:4}, Hidden: false, impl: &widget.Label{(CYCLIC REFERENCE)}, propertyLock: sync.RWMutex{}, }, Text: "Hello Fyne!", Alignment: 0, Wrapping: 0, TextStyle: fyne.TextStyle{}, provider: &widget.textProvider{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:87, Height:29}, position: fyne.Position{}, Hidden: false, impl: &widget.Label{(CYCLIC REFERENCE)}, propertyLock: sync.RWMutex{}, }, presenter: &widget.Label{(CYCLIC REFERENCE)}, buffer: {72, 101, 108, 108, 111, 32, 70, 121, 110, 101, 33}, rowBounds: { {0, 11}, }, }, }, menu: nil, overlays: &glfw.overlayStack{ OverlayStack: internal.OverlayStack{}, onChange: func() {...}, renderCaches: nil, }, padded: true, size: fyne.Size{Width:95, Height:37}, focused: nil, focusMgr: &app.FocusManager{ canvas: &glfw.glCanvas{(CYCLIC REFERENCE)}, }, onTypedRune: func(int32) {...}, onTypedKey: func(*fyne.KeyEvent) {...}, onKeyDown: func(*fyne.KeyEvent) {...}, onKeyUp: func(*fyne.KeyEvent) {...}, shortcut: fyne.ShortcutHandler{}, scale: 1, detectedScale: 1, texScale: 1, painter: &gl.glPainter{(CYCLIC REFERENCE)}, dirty: true, dirtyMutex: &sync.Mutex{}, refreshQueue: 0xc00006c540, contentTree: &glfw.renderCacheTree{ RWMutex: sync.RWMutex{ w: sync.Mutex{state:1, sema:0x0}, writerSem: 0x0, readerSem: 0x0, readerCount: -1073741824, readerWait: 0, }, root: &glfw.renderCacheNode{ firstChild: &glfw.renderCacheNode{ firstChild: (*glfw.renderCacheNode)(nil), nextSibling: (*glfw.renderCacheNode)(nil), obj: &canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:79, Height:21}, position: fyne.Position{X:4, Y:4}, Hidden: false, min: fyne.Size{}, propertyLock: sync.RWMutex{}, }, Alignment: 0, Color: color.NRGBA{R:0xff, G:0xff, B:0xff, A:0xff}, Text: "Hello Fyne!", TextSize: 14, TextStyle: fyne.TextStyle{}, }, parent: &glfw.renderCacheNode{(CYCLIC REFERENCE)}, minSize: fyne.Size{Width:79, Height:21}, painterData: nil, }, nextSibling: (*glfw.renderCacheNode)(nil), obj: &widget.Label{(CYCLIC REFERENCE)}, parent: (*glfw.renderCacheNode)(nil), minSize: fyne.Size{Width:87, Height:29}, painterData: nil, }, }, menuTree: (*glfw.renderCacheTree)(nil), context: &glfw.window{ viewport: &glfw.Window{ data: &glfw._Ctype_struct_GLFWwindow{}, fPosHolder: func(*glfw.Window, int, int) {...}, fSizeHolder: func(*glfw.Window, int, int) {...}, fFramebufferSizeHolder: func(*glfw.Window, int, int) {...}, fCloseHolder: func(*glfw.Window) {...}, fMaximizeHolder: func(*glfw.Window, bool) {...}, fContentScaleHolder: func(*glfw.Window, float32, float32) {...}, fRefreshHolder: func(*glfw.Window) {...}, fFocusHolder: func(*glfw.Window, bool) {...}, fIconifyHolder: func(*glfw.Window, bool) {...}, fMouseButtonHolder: func(*glfw.Window, glfw.MouseButton, glfw.Action, glfw.ModifierKey) {...}, fCursorPosHolder: func(*glfw.Window, float64, float64) {...}, fCursorEnterHolder: func(*glfw.Window, bool) {...}, fScrollHolder: func(*glfw.Window, float64, float64) {...}, fKeyHolder: func(*glfw.Window, glfw.Key, int, glfw.Action, glfw.ModifierKey) {...}, fCharHolder: func(*glfw.Window, int32) {...}, fCharModsHolder: func(*glfw.Window, int32, glfw.ModifierKey) {...}, fDropHolder: func(*glfw.Window, []string) {...}, }, viewLock: sync.RWMutex{}, createLock: sync.Once{ done: 0x1, m: sync.Mutex{}, }, decorate: true, fixedSize: false, cursor: &glfw.Cursor{ data: &glfw._Ctype_struct_GLFWcursor{}, }, canvas: &glfw.glCanvas{(CYCLIC REFERENCE)}, title: "Hello", icon: nil, mainmenu: (*fyne.MainMenu)(nil), clipboard: nil, master: false, fullScreen: false, centered: false, visible: true, mousePos: fyne.Position{X:44, Y:15}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 2650, ypos: 693, width: 95, height: 37, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, }, context: &glfw.window{ viewport: &glfw.Window{ data: &glfw._Ctype_struct_GLFWwindow{}, fPosHolder: func(*glfw.Window, int, int) {...}, fSizeHolder: func(*glfw.Window, int, int) {...}, fFramebufferSizeHolder: func(*glfw.Window, int, int) {...}, fCloseHolder: func(*glfw.Window) {...}, fMaximizeHolder: func(*glfw.Window, bool) {...}, fContentScaleHolder: func(*glfw.Window, float32, float32) {...}, fRefreshHolder: func(*glfw.Window) {...}, fFocusHolder: func(*glfw.Window, bool) {...}, fIconifyHolder: func(*glfw.Window, bool) {...}, fMouseButtonHolder: func(*glfw.Window, glfw.MouseButton, glfw.Action, glfw.ModifierKey) {...}, fCursorPosHolder: func(*glfw.Window, float64, float64) {...}, fCursorEnterHolder: func(*glfw.Window, bool) {...}, fScrollHolder: func(*glfw.Window, float64, float64) {...}, fKeyHolder: func(*glfw.Window, glfw.Key, int, glfw.Action, glfw.ModifierKey) {...}, fCharHolder: func(*glfw.Window, int32) {...}, fCharModsHolder: func(*glfw.Window, int32, glfw.ModifierKey) {...}, fDropHolder: func(*glfw.Window, []string) {...}, }, viewLock: sync.RWMutex{}, createLock: sync.Once{ done: 0x1, m: sync.Mutex{}, }, decorate: true, fixedSize: false, cursor: &glfw.Cursor{ data: &glfw._Ctype_struct_GLFWcursor{}, }, canvas: &glfw.glCanvas{(CYCLIC REFERENCE)}, title: "Hello", icon: nil, mainmenu: (*fyne.MainMenu)(nil), clipboard: nil, master: false, fullScreen: false, centered: false, visible: true, mousePos: fyne.Position{X:44, Y:15}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 2650, ypos: 693, width: 95, height: 37, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, program: 0x3, texScale: 1, } 0.008s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:87, Height:29}, position: fyne.Position{X:4, Y:4}, Hidden: false, impl: &widget.Label{(CYCLIC REFERENCE)}, propertyLock: sync.RWMutex{}, }, Text: "Hello Fyne!", Alignment: 0, Wrapping: 0, TextStyle: fyne.TextStyle{}, provider: &widget.textProvider{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:87, Height:29}, position: fyne.Position{}, Hidden: false, impl: &widget.Label{(CYCLIC REFERENCE)}, propertyLock: sync.RWMutex{}, }, presenter: &widget.Label{(CYCLIC REFERENCE)}, buffer: {72, 101, 108, 108, 111, 32, 70, 121, 110, 101, 33}, rowBounds: { {0, 11}, }, }, } 0.008s pos=fyne.Position{X:4, Y:4} 0.009s frame=fyne.Size{Width:95, Height:37} 0.009s internal/painter/gl/painter.go:Paint() 0.014s p=&gl.glPainter{ canvas: &glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:87, Height:29}, position: fyne.Position{X:4, Y:4}, Hidden: false, impl: &widget.Label{(CYCLIC REFERENCE)}, propertyLock: sync.RWMutex{}, }, Text: "Hello Fyne!", Alignment: 0, Wrapping: 0, TextStyle: fyne.TextStyle{}, provider: &widget.textProvider{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:87, Height:29}, position: fyne.Position{}, Hidden: false, impl: &widget.Label{(CYCLIC REFERENCE)}, propertyLock: sync.RWMutex{}, }, presenter: &widget.Label{(CYCLIC REFERENCE)}, buffer: {72, 101, 108, 108, 111, 32, 70, 121, 110, 101, 33}, rowBounds: { {0, 11}, }, }, }, menu: nil, overlays: &glfw.overlayStack{ OverlayStack: internal.OverlayStack{}, onChange: func() {...}, renderCaches: nil, }, padded: true, size: fyne.Size{Width:95, Height:37}, focused: nil, focusMgr: &app.FocusManager{ canvas: &glfw.glCanvas{(CYCLIC REFERENCE)}, }, onTypedRune: func(int32) {...}, onTypedKey: func(*fyne.KeyEvent) {...}, onKeyDown: func(*fyne.KeyEvent) {...}, onKeyUp: func(*fyne.KeyEvent) {...}, shortcut: fyne.ShortcutHandler{}, scale: 1, detectedScale: 1, texScale: 1, painter: &gl.glPainter{(CYCLIC REFERENCE)}, dirty: true, dirtyMutex: &sync.Mutex{}, refreshQueue: 0xc00006c540, contentTree: &glfw.renderCacheTree{ RWMutex: sync.RWMutex{ w: sync.Mutex{state:1, sema:0x0}, writerSem: 0x0, readerSem: 0x0, readerCount: -1073741824, readerWait: 0, }, root: &glfw.renderCacheNode{ firstChild: &glfw.renderCacheNode{ firstChild: (*glfw.renderCacheNode)(nil), nextSibling: (*glfw.renderCacheNode)(nil), obj: &canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:79, Height:21}, position: fyne.Position{X:4, Y:4}, Hidden: false, min: fyne.Size{}, propertyLock: sync.RWMutex{}, }, Alignment: 0, Color: color.NRGBA{R:0xff, G:0xff, B:0xff, A:0xff}, Text: "Hello Fyne!", TextSize: 14, TextStyle: fyne.TextStyle{}, }, parent: &glfw.renderCacheNode{(CYCLIC REFERENCE)}, minSize: fyne.Size{Width:79, Height:21}, painterData: nil, }, nextSibling: (*glfw.renderCacheNode)(nil), obj: &widget.Label{(CYCLIC REFERENCE)}, parent: (*glfw.renderCacheNode)(nil), minSize: fyne.Size{Width:87, Height:29}, painterData: nil, }, }, menuTree: (*glfw.renderCacheTree)(nil), context: &glfw.window{ viewport: &glfw.Window{ data: &glfw._Ctype_struct_GLFWwindow{}, fPosHolder: func(*glfw.Window, int, int) {...}, fSizeHolder: func(*glfw.Window, int, int) {...}, fFramebufferSizeHolder: func(*glfw.Window, int, int) {...}, fCloseHolder: func(*glfw.Window) {...}, fMaximizeHolder: func(*glfw.Window, bool) {...}, fContentScaleHolder: func(*glfw.Window, float32, float32) {...}, fRefreshHolder: func(*glfw.Window) {...}, fFocusHolder: func(*glfw.Window, bool) {...}, fIconifyHolder: func(*glfw.Window, bool) {...}, fMouseButtonHolder: func(*glfw.Window, glfw.MouseButton, glfw.Action, glfw.ModifierKey) {...}, fCursorPosHolder: func(*glfw.Window, float64, float64) {...}, fCursorEnterHolder: func(*glfw.Window, bool) {...}, fScrollHolder: func(*glfw.Window, float64, float64) {...}, fKeyHolder: func(*glfw.Window, glfw.Key, int, glfw.Action, glfw.ModifierKey) {...}, fCharHolder: func(*glfw.Window, int32) {...}, fCharModsHolder: func(*glfw.Window, int32, glfw.ModifierKey) {...}, fDropHolder: func(*glfw.Window, []string) {...}, }, viewLock: sync.RWMutex{}, createLock: sync.Once{ done: 0x1, m: sync.Mutex{}, }, decorate: true, fixedSize: false, cursor: &glfw.Cursor{ data: &glfw._Ctype_struct_GLFWcursor{}, }, canvas: &glfw.glCanvas{(CYCLIC REFERENCE)}, title: "Hello", icon: nil, mainmenu: (*fyne.MainMenu)(nil), clipboard: nil, master: false, fullScreen: false, centered: false, visible: true, mousePos: fyne.Position{X:44, Y:15}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 2650, ypos: 693, width: 95, height: 37, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, }, context: &glfw.window{ viewport: &glfw.Window{ data: &glfw._Ctype_struct_GLFWwindow{}, fPosHolder: func(*glfw.Window, int, int) {...}, fSizeHolder: func(*glfw.Window, int, int) {...}, fFramebufferSizeHolder: func(*glfw.Window, int, int) {...}, fCloseHolder: func(*glfw.Window) {...}, fMaximizeHolder: func(*glfw.Window, bool) {...}, fContentScaleHolder: func(*glfw.Window, float32, float32) {...}, fRefreshHolder: func(*glfw.Window) {...}, fFocusHolder: func(*glfw.Window, bool) {...}, fIconifyHolder: func(*glfw.Window, bool) {...}, fMouseButtonHolder: func(*glfw.Window, glfw.MouseButton, glfw.Action, glfw.ModifierKey) {...}, fCursorPosHolder: func(*glfw.Window, float64, float64) {...}, fCursorEnterHolder: func(*glfw.Window, bool) {...}, fScrollHolder: func(*glfw.Window, float64, float64) {...}, fKeyHolder: func(*glfw.Window, glfw.Key, int, glfw.Action, glfw.ModifierKey) {...}, fCharHolder: func(*glfw.Window, int32) {...}, fCharModsHolder: func(*glfw.Window, int32, glfw.ModifierKey) {...}, fDropHolder: func(*glfw.Window, []string) {...}, }, viewLock: sync.RWMutex{}, createLock: sync.Once{ done: 0x1, m: sync.Mutex{}, }, decorate: true, fixedSize: false, cursor: &glfw.Cursor{ data: &glfw._Ctype_struct_GLFWcursor{}, }, canvas: &glfw.glCanvas{(CYCLIC REFERENCE)}, title: "Hello", icon: nil, mainmenu: (*fyne.MainMenu)(nil), clipboard: nil, master: false, fullScreen: false, centered: false, visible: true, mousePos: fyne.Position{X:44, Y:15}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 2650, ypos: 693, width: 95, height: 37, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, program: 0x3, texScale: 1, } 0.014s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:79, Height:21}, position: fyne.Position{X:4, Y:4}, Hidden: false, min: fyne.Size{}, propertyLock: sync.RWMutex{}, }, Alignment: 0, Color: color.NRGBA{R:0xff, G:0xff, B:0xff, A:0xff}, Text: "Hello Fyne!", TextSize: 14, TextStyle: fyne.TextStyle{}, } 0.014s pos=fyne.Position{X:8, Y:8} 0.015s frame=fyne.Size{Width:95, Height:37} [11:45:16 glfw/canvas.go:394 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.001s internal/driver/glfw/canvas.go:paint() 0.005s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:87, Height:29}, position: fyne.Position{X:4, Y:4}, Hidden: false, impl: &widget.Label{(CYCLIC REFERENCE)}, propertyLock: sync.RWMutex{}, }, Text: "Hello Fyne!", Alignment: 0, Wrapping: 0, TextStyle: fyne.TextStyle{}, provider: &widget.textProvider{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:87, Height:29}, position: fyne.Position{}, Hidden: false, impl: &widget.Label{(CYCLIC REFERENCE)}, propertyLock: sync.RWMutex{}, }, presenter: &widget.Label{(CYCLIC REFERENCE)}, buffer: {72, 101, 108, 108, 111, 32, 70, 121, 110, 101, 33}, rowBounds: { {0, 11}, }, }, }, menu: nil, overlays: &glfw.overlayStack{ OverlayStack: internal.OverlayStack{}, onChange: func() {...}, renderCaches: nil, }, padded: true, size: fyne.Size{Width:95, Height:37}, focused: nil, focusMgr: &app.FocusManager{ canvas: &glfw.glCanvas{(CYCLIC REFERENCE)}, }, onTypedRune: func(int32) {...}, onTypedKey: func(*fyne.KeyEvent) {...}, onKeyDown: func(*fyne.KeyEvent) {...}, onKeyUp: func(*fyne.KeyEvent) {...}, shortcut: fyne.ShortcutHandler{}, scale: 1, detectedScale: 1, texScale: 1, painter: &gl.glPainter{ canvas: &glfw.glCanvas{(CYCLIC REFERENCE)}, context: &glfw.window{ viewport: &glfw.Window{ data: &glfw._Ctype_struct_GLFWwindow{}, fPosHolder: func(*glfw.Window, int, int) {...}, fSizeHolder: func(*glfw.Window, int, int) {...}, fFramebufferSizeHolder: func(*glfw.Window, int, int) {...}, fCloseHolder: func(*glfw.Window) {...}, fMaximizeHolder: func(*glfw.Window, bool) {...}, fContentScaleHolder: func(*glfw.Window, float32, float32) {...}, fRefreshHolder: func(*glfw.Window) {...}, fFocusHolder: func(*glfw.Window, bool) {...}, fIconifyHolder: func(*glfw.Window, bool) {...}, fMouseButtonHolder: func(*glfw.Window, glfw.MouseButton, glfw.Action, glfw.ModifierKey) {...}, fCursorPosHolder: func(*glfw.Window, float64, float64) {...}, fCursorEnterHolder: func(*glfw.Window, bool) {...}, fScrollHolder: func(*glfw.Window, float64, float64) {...}, fKeyHolder: func(*glfw.Window, glfw.Key, int, glfw.Action, glfw.ModifierKey) {...}, fCharHolder: func(*glfw.Window, int32) {...}, fCharModsHolder: func(*glfw.Window, int32, glfw.ModifierKey) {...}, fDropHolder: func(*glfw.Window, []string) {...}, }, viewLock: sync.RWMutex{}, createLock: sync.Once{ done: 0x1, m: sync.Mutex{}, }, decorate: true, fixedSize: false, cursor: &glfw.Cursor{ data: &glfw._Ctype_struct_GLFWcursor{}, }, canvas: &glfw.glCanvas{(CYCLIC REFERENCE)}, title: "Hello", icon: nil, mainmenu: (*fyne.MainMenu)(nil), clipboard: nil, master: false, fullScreen: false, centered: false, visible: true, mousePos: fyne.Position{X:44, Y:15}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 2650, ypos: 693, width: 95, height: 37, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, program: 0x3, texScale: 1, }, dirty: true, dirtyMutex: &sync.Mutex{}, refreshQueue: 0xc00006c540, contentTree: &glfw.renderCacheTree{ RWMutex: sync.RWMutex{}, root: &glfw.renderCacheNode{ firstChild: &glfw.renderCacheNode{ firstChild: (*glfw.renderCacheNode)(nil), nextSibling: (*glfw.renderCacheNode)(nil), obj: &canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:79, Height:21}, position: fyne.Position{X:4, Y:4}, Hidden: false, min: fyne.Size{}, propertyLock: sync.RWMutex{}, }, Alignment: 0, Color: color.NRGBA{R:0xff, G:0xff, B:0xff, A:0xff}, Text: "Hello Fyne!", TextSize: 14, TextStyle: fyne.TextStyle{}, }, parent: &glfw.renderCacheNode{(CYCLIC REFERENCE)}, minSize: fyne.Size{Width:79, Height:21}, painterData: nil, }, nextSibling: (*glfw.renderCacheNode)(nil), obj: &widget.Label{(CYCLIC REFERENCE)}, parent: (*glfw.renderCacheNode)(nil), minSize: fyne.Size{Width:87, Height:29}, painterData: nil, }, }, menuTree: (*glfw.renderCacheTree)(nil), context: &glfw.window{ viewport: &glfw.Window{ data: &glfw._Ctype_struct_GLFWwindow{}, fPosHolder: func(*glfw.Window, int, int) {...}, fSizeHolder: func(*glfw.Window, int, int) {...}, fFramebufferSizeHolder: func(*glfw.Window, int, int) {...}, fCloseHolder: func(*glfw.Window) {...}, fMaximizeHolder: func(*glfw.Window, bool) {...}, fContentScaleHolder: func(*glfw.Window, float32, float32) {...}, fRefreshHolder: func(*glfw.Window) {...}, fFocusHolder: func(*glfw.Window, bool) {...}, fIconifyHolder: func(*glfw.Window, bool) {...}, fMouseButtonHolder: func(*glfw.Window, glfw.MouseButton, glfw.Action, glfw.ModifierKey) {...}, fCursorPosHolder: func(*glfw.Window, float64, float64) {...}, fCursorEnterHolder: func(*glfw.Window, bool) {...}, fScrollHolder: func(*glfw.Window, float64, float64) {...}, fKeyHolder: func(*glfw.Window, glfw.Key, int, glfw.Action, glfw.ModifierKey) {...}, fCharHolder: func(*glfw.Window, int32) {...}, fCharModsHolder: func(*glfw.Window, int32, glfw.ModifierKey) {...}, fDropHolder: func(*glfw.Window, []string) {...}, }, viewLock: sync.RWMutex{}, createLock: sync.Once{ done: 0x1, m: sync.Mutex{}, }, decorate: true, fixedSize: false, cursor: &glfw.Cursor{ data: &glfw._Ctype_struct_GLFWcursor{}, }, canvas: &glfw.glCanvas{(CYCLIC REFERENCE)}, title: "Hello", icon: nil, mainmenu: (*fyne.MainMenu)(nil), clipboard: nil, master: false, fullScreen: false, centered: false, visible: true, mousePos: fyne.Position{X:44, Y:15}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 2650, ypos: 693, width: 95, height: 37, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.007s size=fyne.Size{Width:95, Height:37} [11:45:16 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s internal/painter/gl/painter.go:Paint() 0.003s p=&gl.glPainter{ canvas: &glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:87, Height:29}, position: fyne.Position{X:4, Y:4}, Hidden: false, impl: &widget.Label{(CYCLIC REFERENCE)}, propertyLock: sync.RWMutex{}, }, Text: "Hello Fyne!", Alignment: 0, Wrapping: 0, TextStyle: fyne.TextStyle{}, provider: &widget.textProvider{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:87, Height:29}, position: fyne.Position{}, Hidden: false, impl: &widget.Label{(CYCLIC REFERENCE)}, propertyLock: sync.RWMutex{}, }, presenter: &widget.Label{(CYCLIC REFERENCE)}, buffer: {72, 101, 108, 108, 111, 32, 70, 121, 110, 101, 33}, rowBounds: { {0, 11}, }, }, }, menu: nil, overlays: &glfw.overlayStack{ OverlayStack: internal.OverlayStack{}, onChange: func() {...}, renderCaches: nil, }, padded: true, size: fyne.Size{Width:95, Height:37}, focused: nil, focusMgr: &app.FocusManager{ canvas: &glfw.glCanvas{(CYCLIC REFERENCE)}, }, onTypedRune: func(int32) {...}, onTypedKey: func(*fyne.KeyEvent) {...}, onKeyDown: func(*fyne.KeyEvent) {...}, onKeyUp: func(*fyne.KeyEvent) {...}, shortcut: fyne.ShortcutHandler{}, scale: 1, detectedScale: 1, texScale: 1, painter: &gl.glPainter{(CYCLIC REFERENCE)}, dirty: false, dirtyMutex: &sync.Mutex{}, refreshQueue: 0xc00006c540, contentTree: &glfw.renderCacheTree{ RWMutex: sync.RWMutex{ w: sync.Mutex{state:1, sema:0x0}, writerSem: 0x0, readerSem: 0x0, readerCount: -1073741824, readerWait: 0, }, root: &glfw.renderCacheNode{ firstChild: &glfw.renderCacheNode{ firstChild: (*glfw.renderCacheNode)(nil), nextSibling: (*glfw.renderCacheNode)(nil), obj: &canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:79, Height:21}, position: fyne.Position{X:4, Y:4}, Hidden: false, min: fyne.Size{}, propertyLock: sync.RWMutex{}, }, Alignment: 0, Color: color.NRGBA{R:0xff, G:0xff, B:0xff, A:0xff}, Text: "Hello Fyne!", TextSize: 14, TextStyle: fyne.TextStyle{}, }, parent: &glfw.renderCacheNode{(CYCLIC REFERENCE)}, minSize: fyne.Size{Width:79, Height:21}, painterData: nil, }, nextSibling: (*glfw.renderCacheNode)(nil), obj: &widget.Label{(CYCLIC REFERENCE)}, parent: (*glfw.renderCacheNode)(nil), minSize: fyne.Size{Width:87, Height:29}, painterData: nil, }, }, menuTree: (*glfw.renderCacheTree)(nil), context: &glfw.window{ viewport: &glfw.Window{ data: &glfw._Ctype_struct_GLFWwindow{}, fPosHolder: func(*glfw.Window, int, int) {...}, fSizeHolder: func(*glfw.Window, int, int) {...}, fFramebufferSizeHolder: func(*glfw.Window, int, int) {...}, fCloseHolder: func(*glfw.Window) {...}, fMaximizeHolder: func(*glfw.Window, bool) {...}, fContentScaleHolder: func(*glfw.Window, float32, float32) {...}, fRefreshHolder: func(*glfw.Window) {...}, fFocusHolder: func(*glfw.Window, bool) {...}, fIconifyHolder: func(*glfw.Window, bool) {...}, fMouseButtonHolder: func(*glfw.Window, glfw.MouseButton, glfw.Action, glfw.ModifierKey) {...}, fCursorPosHolder: func(*glfw.Window, float64, float64) {...}, fCursorEnterHolder: func(*glfw.Window, bool) {...}, fScrollHolder: func(*glfw.Window, float64, float64) {...}, fKeyHolder: func(*glfw.Window, glfw.Key, int, glfw.Action, glfw.ModifierKey) {...}, fCharHolder: func(*glfw.Window, int32) {...}, fCharModsHolder: func(*glfw.Window, int32, glfw.ModifierKey) {...}, fDropHolder: func(*glfw.Window, []string) {...}, }, viewLock: sync.RWMutex{}, createLock: sync.Once{ done: 0x1, m: sync.Mutex{}, }, decorate: true, fixedSize: false, cursor: &glfw.Cursor{ data: &glfw._Ctype_struct_GLFWcursor{}, }, canvas: &glfw.glCanvas{(CYCLIC REFERENCE)}, title: "Hello", icon: nil, mainmenu: (*fyne.MainMenu)(nil), clipboard: nil, master: false, fullScreen: false, centered: false, visible: true, mousePos: fyne.Position{X:44, Y:15}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 2650, ypos: 693, width: 95, height: 37, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, }, context: &glfw.window{ viewport: &glfw.Window{ data: &glfw._Ctype_struct_GLFWwindow{}, fPosHolder: func(*glfw.Window, int, int) {...}, fSizeHolder: func(*glfw.Window, int, int) {...}, fFramebufferSizeHolder: func(*glfw.Window, int, int) {...}, fCloseHolder: func(*glfw.Window) {...}, fMaximizeHolder: func(*glfw.Window, bool) {...}, fContentScaleHolder: func(*glfw.Window, float32, float32) {...}, fRefreshHolder: func(*glfw.Window) {...}, fFocusHolder: func(*glfw.Window, bool) {...}, fIconifyHolder: func(*glfw.Window, bool) {...}, fMouseButtonHolder: func(*glfw.Window, glfw.MouseButton, glfw.Action, glfw.ModifierKey) {...}, fCursorPosHolder: func(*glfw.Window, float64, float64) {...}, fCursorEnterHolder: func(*glfw.Window, bool) {...}, fScrollHolder: func(*glfw.Window, float64, float64) {...}, fKeyHolder: func(*glfw.Window, glfw.Key, int, glfw.Action, glfw.ModifierKey) {...}, fCharHolder: func(*glfw.Window, int32) {...}, fCharModsHolder: func(*glfw.Window, int32, glfw.ModifierKey) {...}, fDropHolder: func(*glfw.Window, []string) {...}, }, viewLock: sync.RWMutex{}, createLock: sync.Once{ done: 0x1, m: sync.Mutex{}, }, decorate: true, fixedSize: false, cursor: &glfw.Cursor{ data: &glfw._Ctype_struct_GLFWcursor{}, }, canvas: &glfw.glCanvas{(CYCLIC REFERENCE)}, title: "Hello", icon: nil, mainmenu: (*fyne.MainMenu)(nil), clipboard: nil, master: false, fullScreen: false, centered: false, visible: true, mousePos: fyne.Position{X:44, Y:15}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 2650, ypos: 693, width: 95, height: 37, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, program: 0x3, texScale: 1, } 0.004s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:87, Height:29}, position: fyne.Position{X:4, Y:4}, Hidden: false, impl: &widget.Label{(CYCLIC REFERENCE)}, propertyLock: sync.RWMutex{}, }, Text: "Hello Fyne!", Alignment: 0, Wrapping: 0, TextStyle: fyne.TextStyle{}, provider: &widget.textProvider{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:87, Height:29}, position: fyne.Position{}, Hidden: false, impl: &widget.Label{(CYCLIC REFERENCE)}, propertyLock: sync.RWMutex{}, }, presenter: &widget.Label{(CYCLIC REFERENCE)}, buffer: {72, 101, 108, 108, 111, 32, 70, 121, 110, 101, 33}, rowBounds: { {0, 11}, }, }, } 0.004s pos=fyne.Position{X:4, Y:4} 0.004s frame=fyne.Size{Width:95, Height:37} 0.004s internal/painter/gl/painter.go:Paint() 0.007s p=&gl.glPainter{ canvas: &glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:87, Height:29}, position: fyne.Position{X:4, Y:4}, Hidden: false, impl: &widget.Label{(CYCLIC REFERENCE)}, propertyLock: sync.RWMutex{}, }, Text: "Hello Fyne!", Alignment: 0, Wrapping: 0, TextStyle: fyne.TextStyle{}, provider: &widget.textProvider{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:87, Height:29}, position: fyne.Position{}, Hidden: false, impl: &widget.Label{(CYCLIC REFERENCE)}, propertyLock: sync.RWMutex{}, }, presenter: &widget.Label{(CYCLIC REFERENCE)}, buffer: {72, 101, 108, 108, 111, 32, 70, 121, 110, 101, 33}, rowBounds: { {0, 11}, }, }, }, menu: nil, overlays: &glfw.overlayStack{ OverlayStack: internal.OverlayStack{}, onChange: func() {...}, renderCaches: nil, }, padded: true, size: fyne.Size{Width:95, Height:37}, focused: nil, focusMgr: &app.FocusManager{ canvas: &glfw.glCanvas{(CYCLIC REFERENCE)}, }, onTypedRune: func(int32) {...}, onTypedKey: func(*fyne.KeyEvent) {...}, onKeyDown: func(*fyne.KeyEvent) {...}, onKeyUp: func(*fyne.KeyEvent) {...}, shortcut: fyne.ShortcutHandler{}, scale: 1, detectedScale: 1, texScale: 1, painter: &gl.glPainter{(CYCLIC REFERENCE)}, dirty: false, dirtyMutex: &sync.Mutex{}, refreshQueue: 0xc00006c540, contentTree: &glfw.renderCacheTree{ RWMutex: sync.RWMutex{ w: sync.Mutex{state:1, sema:0x0}, writerSem: 0x0, readerSem: 0x0, readerCount: -1073741824, readerWait: 0, }, root: &glfw.renderCacheNode{ firstChild: &glfw.renderCacheNode{ firstChild: (*glfw.renderCacheNode)(nil), nextSibling: (*glfw.renderCacheNode)(nil), obj: &canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:79, Height:21}, position: fyne.Position{X:4, Y:4}, Hidden: false, min: fyne.Size{}, propertyLock: sync.RWMutex{}, }, Alignment: 0, Color: color.NRGBA{R:0xff, G:0xff, B:0xff, A:0xff}, Text: "Hello Fyne!", TextSize: 14, TextStyle: fyne.TextStyle{}, }, parent: &glfw.renderCacheNode{(CYCLIC REFERENCE)}, minSize: fyne.Size{Width:79, Height:21}, painterData: nil, }, nextSibling: (*glfw.renderCacheNode)(nil), obj: &widget.Label{(CYCLIC REFERENCE)}, parent: (*glfw.renderCacheNode)(nil), minSize: fyne.Size{Width:87, Height:29}, painterData: nil, }, }, menuTree: (*glfw.renderCacheTree)(nil), context: &glfw.window{ viewport: &glfw.Window{ data: &glfw._Ctype_struct_GLFWwindow{}, fPosHolder: func(*glfw.Window, int, int) {...}, fSizeHolder: func(*glfw.Window, int, int) {...}, fFramebufferSizeHolder: func(*glfw.Window, int, int) {...}, fCloseHolder: func(*glfw.Window) {...}, fMaximizeHolder: func(*glfw.Window, bool) {...}, fContentScaleHolder: func(*glfw.Window, float32, float32) {...}, fRefreshHolder: func(*glfw.Window) {...}, fFocusHolder: func(*glfw.Window, bool) {...}, fIconifyHolder: func(*glfw.Window, bool) {...}, fMouseButtonHolder: func(*glfw.Window, glfw.MouseButton, glfw.Action, glfw.ModifierKey) {...}, fCursorPosHolder: func(*glfw.Window, float64, float64) {...}, fCursorEnterHolder: func(*glfw.Window, bool) {...}, fScrollHolder: func(*glfw.Window, float64, float64) {...}, fKeyHolder: func(*glfw.Window, glfw.Key, int, glfw.Action, glfw.ModifierKey) {...}, fCharHolder: func(*glfw.Window, int32) {...}, fCharModsHolder: func(*glfw.Window, int32, glfw.ModifierKey) {...}, fDropHolder: func(*glfw.Window, []string) {...}, }, viewLock: sync.RWMutex{}, createLock: sync.Once{ done: 0x1, m: sync.Mutex{}, }, decorate: true, fixedSize: false, cursor: &glfw.Cursor{ data: &glfw._Ctype_struct_GLFWcursor{}, }, canvas: &glfw.glCanvas{(CYCLIC REFERENCE)}, title: "Hello", icon: nil, mainmenu: (*fyne.MainMenu)(nil), clipboard: nil, master: false, fullScreen: false, centered: false, visible: true, mousePos: fyne.Position{X:44, Y:15}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 2650, ypos: 693, width: 95, height: 37, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, }, context: &glfw.window{ viewport: &glfw.Window{ data: &glfw._Ctype_struct_GLFWwindow{}, fPosHolder: func(*glfw.Window, int, int) {...}, fSizeHolder: func(*glfw.Window, int, int) {...}, fFramebufferSizeHolder: func(*glfw.Window, int, int) {...}, fCloseHolder: func(*glfw.Window) {...}, fMaximizeHolder: func(*glfw.Window, bool) {...}, fContentScaleHolder: func(*glfw.Window, float32, float32) {...}, fRefreshHolder: func(*glfw.Window) {...}, fFocusHolder: func(*glfw.Window, bool) {...}, fIconifyHolder: func(*glfw.Window, bool) {...}, fMouseButtonHolder: func(*glfw.Window, glfw.MouseButton, glfw.Action, glfw.ModifierKey) {...}, fCursorPosHolder: func(*glfw.Window, float64, float64) {...}, fCursorEnterHolder: func(*glfw.Window, bool) {...}, fScrollHolder: func(*glfw.Window, float64, float64) {...}, fKeyHolder: func(*glfw.Window, glfw.Key, int, glfw.Action, glfw.ModifierKey) {...}, fCharHolder: func(*glfw.Window, int32) {...}, fCharModsHolder: func(*glfw.Window, int32, glfw.ModifierKey) {...}, fDropHolder: func(*glfw.Window, []string) {...}, }, viewLock: sync.RWMutex{}, createLock: sync.Once{ done: 0x1, m: sync.Mutex{}, }, decorate: true, fixedSize: false, cursor: &glfw.Cursor{ data: &glfw._Ctype_struct_GLFWcursor{}, }, canvas: &glfw.glCanvas{(CYCLIC REFERENCE)}, title: "Hello", icon: nil, mainmenu: (*fyne.MainMenu)(nil), clipboard: nil, master: false, fullScreen: false, centered: false, visible: true, mousePos: fyne.Position{X:44, Y:15}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 2650, ypos: 693, width: 95, height: 37, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, program: 0x3, texScale: 1, } 0.008s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:79, Height:21}, position: fyne.Position{X:4, Y:4}, Hidden: false, min: fyne.Size{}, propertyLock: sync.RWMutex{}, }, Alignment: 0, Color: color.NRGBA{R:0xff, G:0xff, B:0xff, A:0xff}, Text: "Hello Fyne!", TextSize: 14, TextStyle: fyne.TextStyle{}, } 0.008s pos=fyne.Position{X:8, Y:8} 0.008s frame=fyne.Size{Width:95, Height:37}