summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--area.go3
-rw-r--r--todo.md3
2 files changed, 2 insertions, 4 deletions
diff --git a/area.go b/area.go
index c9734d5..d320410 100644
--- a/area.go
+++ b/area.go
@@ -37,7 +37,7 @@ type Area struct {
}
// AreaHandler represents the events that an Area should respond to.
-// You are responsible for the thread safety of any members of the actual type that implements ths interface.
+// These methods are all executed on the main goroutine, not necessarily the same one that you created the AreaHandler in; you are responsible for the thread safety of any members of the actual type that implements ths interface.
// (Having to use this interface does not strike me as being particularly Go-like, but the nature of Paint makes channel-based event handling a non-option; in practice, deadlocks occur.)
type AreaHandler interface {
// Paint is called when the Area needs to be redrawn.
@@ -287,6 +287,7 @@ func NewArea(width int, height int, handler AreaHandler) *Area {
// SetSize sets the Area's internal drawing size.
// It has no effect on the actual control size.
+// SetSize is safe for concurrent use; if the Area is being repainted or is handling an event, SetSize will wait for that to complete before changing the Area's size.
// It panics if width or height is zero or negative.
func (a *Area) SetSize(width int, height int) {
a.lock.Lock()
diff --git a/todo.md b/todo.md
index d4c740a..07bd7d1 100644
--- a/todo.md
+++ b/todo.md
@@ -1,6 +1,3 @@
-so I don't forget:
-- describe thread-safety of Area.SetSize()
-
important things:
- I think Cocoa listbox item text is too low?
- NSPopUpButton does allow no initial selection ([b setSelectedIndex:-1]); use it