summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPietro Gagliardi <[email protected]>2014-08-13 14:02:10 -0400
committerPietro Gagliardi <[email protected]>2014-08-13 14:02:10 -0400
commit35228385c11ec939ebc29dbaa3d653bcad6cd3b4 (patch)
tree64485c163dc85533acc7e180aebf833eb5c80b52
parentb01c65394202a5377313afe08cd5fb56f0903831 (diff)
Kinda sorta maybe implemented AreaHandler.Defocus() on Mac OS X. Starting to think I should just not allow Areas to be focused out.
-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()
}