[00:08:27 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s 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.100000023841858, detectedScale: 1.096008539199829, 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: 105, height: 41, 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: 577, ypos: 522, width: 105, height: 41, shouldExpand: true, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.005s size=fyne.Size{Width:95, Height:37} [00:08:27 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:95, Height:37} 0.002s 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.003s pos=fyne.Position{X:8, Y:8} 0.004s frame=fyne.Size{Width:95, Height:37} [00:08:32 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.003s 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:88, Height:30}, 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:96, Height:38}, 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.100000023841858, detectedScale: 1.096008539199829, 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:78, Y:26}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 106, height: 42, 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:80, 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:78, Y:26}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 106, height: 42, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.006s size=fyne.Size{Width:95, Height:37} [00:08:32 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:88, Height:30}, 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:88, Height:30}, 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:95, Height:37} 0.001s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:80, 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.001s pos=fyne.Position{X:8, Y:8} 0.002s frame=fyne.Size{Width:95, Height:37} [00:08:32 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:89, Height:30}, 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:89, Height:31}, 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:97, Height:39}, 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.100000023841858, detectedScale: 1.096008539199829, 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:78, Y:26}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 107, height: 43, 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:81, 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:78, Y:26}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 107, height: 43, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.004s size=fyne.Size{Width:97, Height:38} [00:08:32 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.001s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:89, Height:31}, 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:89, Height:31}, 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.001s pos=fyne.Position{X:4, Y:4} 0.002s frame=fyne.Size{Width:97, Height:38} 0.003s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:81, 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.004s pos=fyne.Position{X:8, Y:8} 0.004s frame=fyne.Size{Width:97, Height:38} [00:08:32 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:95, Height:32}, 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:99, Height:35}, 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:107, Height:43}, 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.100000023841858, detectedScale: 1.096008539199829, 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:78, Y:26}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 118, height: 47, 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:91, 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:78, Y:26}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 118, height: 47, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.006s size=fyne.Size{Width:103, Height:40} [00:08:32 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.001s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:99, Height:35}, 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:99, Height:35}, 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.001s pos=fyne.Position{X:4, Y:4} 0.002s frame=fyne.Size{Width:103, Height:40} 0.002s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:91, 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.003s pos=fyne.Position{X:8, Y:8} 0.004s frame=fyne.Size{Width:103, Height:40} [00:08:32 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.003s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:101, Height:37}, 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:101, Height:37}, 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:110, Height:46}, 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.100000023841858, detectedScale: 1.096008539199829, 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:78, Y:26}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 121, height: 51, 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:94, 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:78, Y:26}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 121, height: 51, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.005s size=fyne.Size{Width:109, Height:45} [00:08:32 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.001s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:102, Height:38}, 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:102, Height:38}, 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.001s pos=fyne.Position{X:4, Y:4} 0.002s frame=fyne.Size{Width:109, Height:45} 0.003s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:94, 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.003s pos=fyne.Position{X:8, Y:8} 0.003s frame=fyne.Size{Width:109, Height:45} [00:08:32 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:104, Height:40}, 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:104, Height:40}, 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:112, Height:48}, 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.100000023841858, detectedScale: 1.096008539199829, 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:78, Y:26}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 123, height: 53, 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:96, 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:78, Y:26}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 123, height: 53, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.005s size=fyne.Size{Width:112, Height:48} [00:08:32 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.001s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:104, Height:40}, 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:104, Height:40}, 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:112, Height:48} 0.002s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:96, 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.002s pos=fyne.Position{X:8, Y:8} 0.003s frame=fyne.Size{Width:112, Height:48} [00:08:32 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.003s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:106, Height:41}, 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:106, Height:41}, 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:114, Height:49}, 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.100000023841858, detectedScale: 1.096008539199829, 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:78, Y:26}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 125, height: 54, 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:98, 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:78, Y:26}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 125, height: 54, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.004s size=fyne.Size{Width:114, Height:49} [00:08:32 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:106, Height:41}, 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:106, Height:41}, 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:114, Height:49} 0.001s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:98, 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.001s pos=fyne.Position{X:8, Y:8} 0.002s frame=fyne.Size{Width:114, Height:49} [00:08:32 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:106, Height:41}, 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:106, Height:41}, 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:114, Height:49}, 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.100000023841858, detectedScale: 1.096008539199829, 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:78, Y:26}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 125, height: 54, 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:98, 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:78, Y:26}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 125, height: 54, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.004s size=fyne.Size{Width:114, Height:49} [00:08:32 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:106, Height:41}, 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:106, Height:41}, 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:114, Height:49} 0.002s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:98, 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.002s pos=fyne.Position{X:8, Y:8} 0.002s frame=fyne.Size{Width:114, Height:49} [00:08:33 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.003s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:105, Height:41}, 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:105, Height:41}, 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:113, Height:49}, 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.100000023841858, detectedScale: 1.096008539199829, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 124, height: 54, 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:97, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 124, height: 54, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.005s size=fyne.Size{Width:113, Height:49} [00:08:33 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:105, Height:41}, 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:105, Height:41}, 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:113, Height:49} 0.001s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:97, 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.002s pos=fyne.Position{X:8, Y:8} 0.002s frame=fyne.Size{Width:113, Height:49} [00:08:33 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:105, Height:40}, 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:105, Height:40}, 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:113, Height:48}, 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.100000023841858, detectedScale: 1.096008539199829, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 124, height: 53, 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:97, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 124, height: 53, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.005s size=fyne.Size{Width:113, Height:48} [00:08:33 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:105, Height:40}, 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:105, Height:40}, 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:113, Height:48} 0.001s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:97, 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.001s pos=fyne.Position{X:8, Y:8} 0.002s frame=fyne.Size{Width:113, Height:48} [00:08:33 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:104, Height:40}, 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:104, Height:40}, 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:112, Height:48}, 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.100000023841858, detectedScale: 1.096008539199829, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 123, height: 53, 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:96, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 123, height: 53, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.005s size=fyne.Size{Width:112, Height:48} [00:08:33 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.001s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:104, Height:40}, 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:104, Height:40}, 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.001s pos=fyne.Position{X:4, Y:4} 0.002s frame=fyne.Size{Width:112, Height:48} 0.002s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:96, 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.002s pos=fyne.Position{X:8, Y:8} 0.003s frame=fyne.Size{Width:112, Height:48} [00:08:33 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:102, Height:38}, 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:102, Height:38}, 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:110, Height:46}, 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.100000023841858, detectedScale: 1.096008539199829, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 121, height: 51, 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:94, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 121, height: 51, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.003s size=fyne.Size{Width:110, Height:46} [00:08:33 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:102, Height:38}, 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:102, Height:38}, 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:110, Height:46} 0.002s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:94, 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.002s pos=fyne.Position{X:8, Y:8} 0.002s frame=fyne.Size{Width:110, Height:46} [00:08:33 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.003s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:102, Height:38}, 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:102, Height:38}, 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:110, Height:46}, 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.100000023841858, detectedScale: 1.096008539199829, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 121, height: 51, 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:94, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 121, height: 51, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.004s size=fyne.Size{Width:110, Height:46} [00:08:33 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:102, Height:38}, 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:102, Height:38}, 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:110, Height:46} 0.001s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:94, 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.002s pos=fyne.Position{X:8, Y:8} 0.002s frame=fyne.Size{Width:110, Height:46} [00:08:33 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:101, Height:38}, 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:100, Height:38}, 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:108, Height:46}, 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.100000023841858, detectedScale: 1.096008539199829, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 119, height: 51, 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:92, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 119, height: 51, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.006s size=fyne.Size{Width:109, Height:46} [00:08:33 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.001s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:100, Height:38}, 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:100, Height:38}, 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.001s pos=fyne.Position{X:4, Y:4} 0.002s frame=fyne.Size{Width:109, Height:46} 0.003s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:92, 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.003s pos=fyne.Position{X:8, Y:8} 0.004s frame=fyne.Size{Width:109, Height:46} [00:08:33 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.003s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:100, Height:38}, 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:99, Height:37}, 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:107, Height:45}, 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.100000023841858, detectedScale: 1.096008539199829, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 118, height: 50, 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:91, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 118, height: 50, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.005s size=fyne.Size{Width:108, Height:46} [00:08:33 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:99, Height:37}, 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:99, Height:37}, 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:108, Height:46} 0.001s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:91, 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.001s pos=fyne.Position{X:8, Y:8} 0.002s frame=fyne.Size{Width:108, Height:46} [00:08:33 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.003s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:99, Height:37}, 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:99, Height:37}, 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:107, Height:45}, 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.100000023841858, detectedScale: 1.096008539199829, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 118, height: 50, 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:91, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 118, height: 50, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.005s size=fyne.Size{Width:107, Height:45} [00:08:33 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:99, Height:37}, 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:99, Height:37}, 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:107, Height:45} 0.001s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:91, 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.001s pos=fyne.Position{X:8, Y:8} 0.002s frame=fyne.Size{Width:107, Height:45} [00:08:33 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:99, Height:36}, 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:98, Height:36}, 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:106, Height:44}, 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.100000023841858, detectedScale: 1.096008539199829, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 117, height: 48, 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:90, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 117, height: 48, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.005s size=fyne.Size{Width:107, Height:44} [00:08:33 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:98, Height:36}, 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:98, Height:36}, 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:107, Height:44} 0.002s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:90, 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.003s pos=fyne.Position{X:8, Y:8} 0.003s frame=fyne.Size{Width:107, Height:44} [00:08:34 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:98, Height:36}, 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:98, Height:36}, 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:106, Height:44}, 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.100000023841858, detectedScale: 1.096008539199829, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 117, height: 48, 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:90, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 117, height: 48, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.004s size=fyne.Size{Width:106, Height:44} [00:08:34 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:98, Height:36}, 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:98, Height:36}, 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.000s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:106, Height:44} 0.001s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:90, 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.001s pos=fyne.Position{X:8, Y:8} 0.001s frame=fyne.Size{Width:106, Height:44} [00:08:34 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.003s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:97, Height:36}, 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:97, Height:35}, 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:105, Height:43}, 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.100000023841858, detectedScale: 1.096008539199829, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 116, height: 47, 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:89, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 116, height: 47, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.005s size=fyne.Size{Width:105, Height:44} [00:08:34 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:97, Height:35}, 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:97, Height:35}, 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:105, Height:44} 0.002s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:89, 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.002s pos=fyne.Position{X:8, Y:8} 0.003s frame=fyne.Size{Width:105, Height:44} [00:08:34 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:92, Height:32}, 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:92, Height:32}, 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:100, Height:40}, 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.100000023841858, detectedScale: 1.096008539199829, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 110, height: 44, 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:84, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 110, height: 44, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.005s size=fyne.Size{Width:102, Height:42} [00:08:34 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:92, Height:32}, 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:92, Height:32}, 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:102, Height:42} 0.001s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:84, 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.001s pos=fyne.Position{X:8, Y:8} 0.002s frame=fyne.Size{Width:102, Height:42} [00:08:34 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:87, Height:30}, 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.100000023841858, detectedScale: 1.096008539199829, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 105, height: 41, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 105, height: 41, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.004s size=fyne.Size{Width:95, Height:38} [00:08:34 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:95, Height:38} 0.002s 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.003s pos=fyne.Position{X:8, Y:8} 0.004s frame=fyne.Size{Width:95, Height:38} [00:08:34 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.003s 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.100000023841858, detectedScale: 1.096008539199829, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 105, height: 41, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 105, height: 41, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.005s size=fyne.Size{Width:95, Height:37} [00:08:34 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:95, Height:37} 0.001s 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.001s pos=fyne.Position{X:8, Y:8} 0.002s frame=fyne.Size{Width:95, Height:37} [00:08:34 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s 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.100000023841858, detectedScale: 1.096008539199829, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 105, height: 41, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 105, height: 41, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.003s size=fyne.Size{Width:95, Height:37} [00:08:34 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:95, Height:37} 0.001s 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.001s pos=fyne.Position{X:8, Y:8} 0.002s frame=fyne.Size{Width:95, Height:37} [00:08:34 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s 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.100000023841858, detectedScale: 1.096008539199829, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 105, height: 41, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 105, height: 41, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.004s size=fyne.Size{Width:95, Height:37} [00:08:34 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:95, Height:37} 0.001s 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.002s pos=fyne.Position{X:8, Y:8} 0.002s frame=fyne.Size{Width:95, Height:37} [00:08:34 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.003s 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.100000023841858, detectedScale: 1.096008539199829, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 105, height: 41, 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:77, Y:27}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 577, ypos: 522, width: 105, height: 41, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.006s size=fyne.Size{Width:95, Height:37} [00:08:34 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:95, Height:37} 0.001s 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.001s pos=fyne.Position{X:8, Y:8} 0.002s frame=fyne.Size{Width:95, Height:37} [00:08:38 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s 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.100000023841858, detectedScale: 1.096008539199829, 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: 904, ypos: 433, width: 105, height: 41, 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{ 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: 904, ypos: 433, width: 105, height: 41, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.004s size=fyne.Size{Width:95, Height:37} [00:08:38 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:95, Height:37} 0.002s 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.002s pos=fyne.Position{X:8, Y:8} 0.003s frame=fyne.Size{Width:95, Height:37} [00:08:40 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s 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:31}, 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:39}, 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.100000023841858, detectedScale: 1.096008539199829, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 105, height: 43, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 105, height: 43, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.004s size=fyne.Size{Width:95, Height:37} [00:08:40 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:87, Height:31}, 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:31}, 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:95, Height:37} 0.002s 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.002s pos=fyne.Position{X:8, Y:8} 0.002s frame=fyne.Size{Width:95, Height:37} [00:08:40 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:88, Height:31}, 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:90, Height:32}, 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:98, Height:40}, 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.100000023841858, detectedScale: 1.096008539199829, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 108, height: 44, 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:82, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 108, height: 44, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.005s size=fyne.Size{Width:96, Height:39} [00:08:40 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:90, Height:32}, 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:90, Height:32}, 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:96, Height:39} 0.002s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:82, 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.003s pos=fyne.Position{X:8, Y:8} 0.003s frame=fyne.Size{Width:96, Height:39} [00:08:40 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:96, Height:35}, 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:102, Height:38}, 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:110, Height:46}, 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.100000023841858, detectedScale: 1.096008539199829, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 121, height: 51, 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:94, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 121, height: 51, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.005s size=fyne.Size{Width:104, Height:43} [00:08:40 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:102, Height:38}, 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:102, Height:38}, 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.001s pos=fyne.Position{X:4, Y:4} 0.002s frame=fyne.Size{Width:104, Height:43} 0.003s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:94, 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.004s pos=fyne.Position{X:8, Y:8} 0.004s frame=fyne.Size{Width:104, Height:43} [00:08:40 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:125, Height:49}, 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:125, Height:49}, position: fyne.Position{}, Hidden: false, impl: &widget.Label{(CYCLIC REFERENCE)}, propertyLock: sync.RWMutex{ w: sync.Mutex{}, writerSem: 0x0, readerSem: 0x0, readerCount: 0, readerWait: 0, }, }, 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:147, Height:63}, 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.100000023841858, detectedScale: 1.096008539199829, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 162, height: 69, 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:131, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 162, height: 69, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.004s size=fyne.Size{Width:133, Height:57} [00:08:40 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:139, Height:55}, 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:139, Height:55}, 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:133, Height:57} 0.001s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:131, 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.002s pos=fyne.Position{X:8, Y:8} 0.002s frame=fyne.Size{Width:133, Height:57} [00:08:40 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.003s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:144, Height:58}, 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:144, Height:58}, position: fyne.Position{}, Hidden: false, impl: &widget.Label{(CYCLIC REFERENCE)}, propertyLock: sync.RWMutex{ w: sync.Mutex{state:0, sema:0x0}, writerSem: 0x0, readerSem: 0x0, readerCount: 1, readerWait: 0, }, }, 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:154, Height:67}, 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.100000023841858, detectedScale: 1.096008539199829, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 169, height: 74, 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:138, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 169, height: 74, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.006s size=fyne.Size{Width:152, Height:66} [00:08:40 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:146, Height:59}, 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:146, Height:59}, 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:152, Height:66} 0.001s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:138, 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.001s pos=fyne.Position{X:8, Y:8} 0.002s frame=fyne.Size{Width:152, Height:66} [00:08:40 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.003s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:147, Height:60}, 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:147, Height:60}, 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:155, Height:68}, 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.100000023841858, detectedScale: 1.096008539199829, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 171, height: 75, 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:139, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 171, height: 75, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.006s size=fyne.Size{Width:155, Height:68} [00:08:40 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.001s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:147, Height:60}, 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:147, Height:60}, 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.001s pos=fyne.Position{X:4, Y:4} 0.002s frame=fyne.Size{Width:155, Height:68} 0.002s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:139, 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.003s pos=fyne.Position{X:8, Y:8} 0.003s frame=fyne.Size{Width:155, Height:68} [00:08:40 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:147, Height:60}, 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:147, Height:60}, 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:155, Height:68}, 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.100000023841858, detectedScale: 1.096008539199829, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 171, height: 75, 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:139, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 171, height: 75, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.004s size=fyne.Size{Width:155, Height:68} [00:08:40 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:147, Height:60}, 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:147, Height:60}, 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:155, Height:68} 0.002s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:139, 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.002s pos=fyne.Position{X:8, Y:8} 0.002s frame=fyne.Size{Width:155, Height:68} [00:08:40 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:145, Height:60}, 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:143, Height:59}, 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:151, Height:67}, 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.100000023841858, detectedScale: 1.096008539199829, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 166, height: 74, 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:135, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 166, height: 74, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.007s size=fyne.Size{Width:153, Height:68} [00:08:40 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.001s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:143, Height:59}, 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:143, Height:59}, 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:153, Height:68} 0.002s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:135, 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.002s pos=fyne.Position{X:8, Y:8} 0.002s frame=fyne.Size{Width:153, Height:68} [00:08:40 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:135, Height:56}, 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:135, Height:56}, 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:140, Height:60}, 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.100000023841858, detectedScale: 1.096008539199829, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 154, height: 66, 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:124, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 154, height: 66, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.004s size=fyne.Size{Width:143, Height:64} [00:08:40 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:132, Height:52}, 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:132, Height:52}, 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:143, Height:64} 0.002s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:124, 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.003s pos=fyne.Position{X:8, Y:8} 0.003s frame=fyne.Size{Width:143, Height:64} [00:08:40 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s c=&glfw.glCanvas{ RWMutex: sync.RWMutex{}, content: &widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:110, Height:38}, 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:102, Height:32}, 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:110, Height:40}, 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.100000023841858, detectedScale: 1.096008539199829, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 121, height: 44, 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:94, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 121, height: 44, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.004s size=fyne.Size{Width:118, Height:46} [00:08:40 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s obj=&widget.Label{ BaseWidget: widget.BaseWidget{ size: fyne.Size{Width:102, Height:32}, 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:102, Height:32}, 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:118, Height:46} 0.002s obj=&canvas.Text{ baseObject: canvas.baseObject{ size: fyne.Size{Width:94, 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.002s pos=fyne.Position{X:8, Y:8} 0.002s frame=fyne.Size{Width:118, Height:46} [00:08:40 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.003s 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.100000023841858, detectedScale: 1.096008539199829, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 105, height: 41, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 105, height: 41, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.005s size=fyne.Size{Width:95, Height:37} [00:08:40 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:95, Height:37} 0.001s 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.001s pos=fyne.Position{X:8, Y:8} 0.002s frame=fyne.Size{Width:95, Height:37} [00:08:40 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.003s 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.100000023841858, detectedScale: 1.096008539199829, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 105, height: 41, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 105, height: 41, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.006s size=fyne.Size{Width:95, Height:37} [00:08:40 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.001s 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:95, Height:37} 0.002s 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.002s pos=fyne.Position{X:8, Y:8} 0.002s frame=fyne.Size{Width:95, Height:37} [00:08:40 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.003s 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.100000023841858, detectedScale: 1.096008539199829, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 105, height: 41, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 105, height: 41, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.005s size=fyne.Size{Width:95, Height:37} [00:08:40 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s 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.001s pos=fyne.Position{X:4, Y:4} 0.002s frame=fyne.Size{Width:95, Height:37} 0.002s 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.003s pos=fyne.Position{X:8, Y:8} 0.003s frame=fyne.Size{Width:95, Height:37} [00:08:40 glfw/canvas.go:393 fyne.io/fyne/internal/driver/glfw.(*glCanvas).paint] 0.002s 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.100000023841858, detectedScale: 1.096008539199829, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 105, height: 41, 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:52, Y:16}, mouseDragged: nil, mouseDraggedOffset: fyne.Position{}, mouseDragPos: fyne.Position{}, mouseDragStarted: false, mouseButton: 0, mouseOver: nil, mouseClickTime: time.Time{}, mouseLastClick: nil, mousePressed: nil, onClosed: func() {...}, xpos: 904, ypos: 433, width: 105, height: 41, shouldExpand: false, eventLock: sync.RWMutex{}, eventQueue: 0xc00006c4e0, eventWait: sync.WaitGroup{}, pending: nil, }, } 0.004s size=fyne.Size{Width:95, Height:37} [00:08:40 gl/painter.go:69 fyne.io/fyne/internal/painter/gl.(*glPainter).Paint] 0.000s 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.001s pos=fyne.Position{X:4, Y:4} 0.001s frame=fyne.Size{Width:95, Height:37} 0.001s 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.002s pos=fyne.Position{X:8, Y:8} 0.002s frame=fyne.Size{Width:95, Height:37}