diff options
| author | Pietro Gagliardi <[email protected]> | 2014-05-12 12:28:33 -0400 |
|---|---|---|
| committer | Pietro Gagliardi <[email protected]> | 2014-05-12 12:28:33 -0400 |
| commit | 05c71e0d252cb9dda500706cbdb939f81b714f1b (patch) | |
| tree | 607bcba1095b206029ac7aecc986b0fea491d1eb /area_darwin.go | |
| parent | 29d892d2ffb5a0df1f7bdb170fa63b15230150d6 (diff) | |
Handled AreaHandler.Mouse()'s handled return properly on Mac OS X. Also fixed some typos in objc_darwin.h.
Diffstat (limited to 'area_darwin.go')
| -rw-r--r-- | area_darwin.go | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/area_darwin.go b/area_darwin.go index afb5b12..3261a7b 100644 --- a/area_darwin.go +++ b/area_darwin.go @@ -245,45 +245,45 @@ var ( _keyCode = sel_getUid("keyCode") ) -func handleKeyEvent(self C.id) { - // TODO +func handleKeyEvent(self C.id, SEL C.SEL, e C.id) { + C.objc_msgSendSuper_id(self, _NSView, SEL, e) } -func sendKeyEvent(self C.id, ke KeyEvent) { +func sendKeyEvent(self C.id, sel C.SEL, e C.id, ke KeyEvent) { s := getSysData(self) handled, repaint := s.handler.Key(ke) if repaint { C.objc_msgSend_noargs(self, _display) } if !handled { - handleKeyEvent(self) + handleKeyEvent(self, sel, e) } } -func areaKeyEvent(self C.id, e C.id, up bool) { +func areaKeyEvent(self C.id, sel C.SEL, e C.id, up bool) { var ke KeyEvent keyCode := uintptr(C.objc_msgSend_ushortret_noargs(e, _keyCode)) ke, ok := fromKeycode(keyCode) if !ok { // no such key; modifiers by themselves are handled by -[self flagsChanged:] - handleKeyEvent(self) + handleKeyEvent(self, sel, e) return } // either ke.Key or ke.ExtKey will be set at this point ke.Modifiers = parseModifiers(e) ke.Up = up - sendKeyEvent(self, ke) + sendKeyEvent(self, sel, e, ke) } //export areaView_keyDown func areaView_keyDown(self C.id, sel C.SEL, e C.id) { - areaKeyEvent(self, e, false) + areaKeyEvent(self, sel, e, false) } //export areaView_keyUp func areaView_keyUp(self C.id, sel C.SEL, e C.id) { - areaKeyEvent(self, e, true) + areaKeyEvent(self, sel, e, true) } //export areaView_flagsChanged @@ -295,10 +295,10 @@ func areaView_flagsChanged(self C.id, sel C.SEL, e C.id) { keyCode := uintptr(C.objc_msgSend_ushortret_noargs(e, _keyCode)) mod, ok := keycodeModifiers[keyCode] // comma-ok form to avoid adding entries if !ok { // unknown modifier; ignore - handleKeyEvent(self) + handleKeyEvent(self, sel, e) return } ke.Modifiers = parseModifiers(e) ke.Up = (ke.Modifiers & mod) == 0 - sendKeyEvent(self, ke) + sendKeyEvent(self, sel, e, ke) } |
