From 1d66fd2062a6ac3e3caffb0c45f029edbe86dda9 Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Sat, 8 Feb 2025 11:44:30 -0300 Subject: [PATCH 1/3] add a noCopy struct so go vet complains about copying widgets --- widget/widget.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/widget/widget.go b/widget/widget.go index fb38511750..9bcad5c619 100644 --- a/widget/widget.go +++ b/widget/widget.go @@ -9,8 +9,16 @@ import ( "fyne.io/fyne/v2/theme" ) +type noCopy struct{} + +func (*noCopy) Lock() {} + +func (*noCopy) Unlock() {} + // BaseWidget provides a helper that handles basic widget behaviours. type BaseWidget struct { + noCopy // so `go vet` can complain if a widget is passed by value (copied) + size fyne.Size position fyne.Position Hidden bool From 8ec1a8e6e934bf9377f670bb405f904be43262ca Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Sat, 8 Feb 2025 11:52:06 -0300 Subject: [PATCH 2/3] keep dummy Lock and Unlock out of public API --- widget/widget.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widget/widget.go b/widget/widget.go index 9bcad5c619..7e29abe7d7 100644 --- a/widget/widget.go +++ b/widget/widget.go @@ -17,7 +17,7 @@ func (*noCopy) Unlock() {} // BaseWidget provides a helper that handles basic widget behaviours. type BaseWidget struct { - noCopy // so `go vet` can complain if a widget is passed by value (copied) + noCopy noCopy // so `go vet` can complain if a widget is passed by value (copied) size fyne.Size position fyne.Position From cd60f64619c607d7137402fa3c3aa063b2b62757 Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Sun, 9 Feb 2025 17:26:46 -0300 Subject: [PATCH 3/3] move type definition to bottom of file --- widget/widget.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/widget/widget.go b/widget/widget.go index 7e29abe7d7..557e999031 100644 --- a/widget/widget.go +++ b/widget/widget.go @@ -9,12 +9,6 @@ import ( "fyne.io/fyne/v2/theme" ) -type noCopy struct{} - -func (*noCopy) Lock() {} - -func (*noCopy) Unlock() {} - // BaseWidget provides a helper that handles basic widget behaviours. type BaseWidget struct { noCopy noCopy // so `go vet` can complain if a widget is passed by value (copied) @@ -220,3 +214,9 @@ const ( // Since: 2.5 Adaptive Orientation = 2 ) + +type noCopy struct{} + +func (*noCopy) Lock() {} + +func (*noCopy) Unlock() {}