forked from joejulian/gio
ui/app: (ios) relay system focus events
Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
@@ -110,6 +110,12 @@ func onDestroy(view C.CFTypeRef) {
|
||||
w.view = 0
|
||||
}
|
||||
|
||||
//export onFocus
|
||||
func onFocus(view C.CFTypeRef, focus int) {
|
||||
w := views[view]
|
||||
w.w.event(key.Focus{Focus: focus != 0})
|
||||
}
|
||||
|
||||
//export onLowMemory
|
||||
func onLowMemory() {
|
||||
runtime.GC()
|
||||
|
||||
@@ -36,6 +36,16 @@ static void redraw(CFTypeRef viewRef, BOOL sync) {
|
||||
GioViewController *controller = [[GioViewController alloc] initWithNibName:nil bundle:nil];
|
||||
controller.screen = self.window.screen;
|
||||
self.window.rootViewController = controller;
|
||||
[[NSNotificationCenter defaultCenter] addObserverForName:UIWindowDidBecomeKeyNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *notification) {
|
||||
UIView *view = self.window.rootViewController.view;
|
||||
if (view != nil)
|
||||
onFocus((__bridge CFTypeRef)view, YES);
|
||||
}];
|
||||
[[NSNotificationCenter defaultCenter] addObserverForName:UIWindowDidResignKeyNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *notification) {
|
||||
UIView *view = self.window.rootViewController.view;
|
||||
if (view != nil)
|
||||
onFocus((__bridge CFTypeRef)view, NO);
|
||||
}];
|
||||
[self.window makeKeyAndVisible];
|
||||
return YES;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user