From 35228385c11ec939ebc29dbaa3d653bcad6cd3b4 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Wed, 13 Aug 2014 14:02:10 -0400 Subject: [PATCH] Kinda sorta maybe implemented AreaHandler.Defocus() on Mac OS X. Starting to think I should just not allow Areas to be focused out. --- redo/area_darwin.go | 6 ++++++ redo/area_darwin.m | 6 ++++++ redo/zz_test.go | 1 + 3 files changed, 13 insertions(+) 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() }