summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--redo/area_darwin.go6
-rw-r--r--redo/area_darwin.m6
-rw-r--r--redo/zz_test.go1
3 files changed, 13 insertions, 0 deletions
diff --git a/redo/area_darwin.go b/redo/area_darwin.go
index c4c3d26..ff277e8 100644
--- a/redo/area_darwin.go
+++ b/redo/area_darwin.go
@@ -189,6 +189,12 @@ func areaView_flagsChanged(self C.id, e C.id, data unsafe.Pointer) {
sendKeyEvent(self, ke, data)
}
+//export areaView_defocuses
+func areaView_defocuses(data unsafe.Pointer) C.BOOL {
+ a := (*area)(data)
+ return toBOOL(a.handler.Defocuses())
+}
+
func (a *area) id() C.id {
return a._id
}
diff --git a/redo/area_darwin.m b/redo/area_darwin.m
index f99737f..37bcac7 100644
--- a/redo/area_darwin.m
+++ b/redo/area_darwin.m
@@ -93,6 +93,12 @@ event(keyDown, areaView_keyDown)
event(keyUp, areaView_keyUp)
event(flagsChanged, areaView_flagsChanged)
+- (BOOL)resignFirstResponder
+{
+ // TODO the custom NSApplication sendEvent: means this will never happen
+ return areaView_defocuses(self->goarea);
+}
+
@end
Class getAreaClass(void)
diff --git a/redo/zz_test.go b/redo/zz_test.go
index edc0e1e..3ca54e2 100644
--- a/redo/zz_test.go
+++ b/redo/zz_test.go
@@ -142,6 +142,7 @@ func (tw *testwin) make(done chan struct{}) {
NewVerticalStack(
NewButton("Small"),
NewButton("Small"),
+ NewTextField(),
NewArea(200, 200, &areaHandler{*defocuses})))
tw.wsmall.Show()
}