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
|
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
|
//export onLowMemory
|
||||||
func onLowMemory() {
|
func onLowMemory() {
|
||||||
runtime.GC()
|
runtime.GC()
|
||||||
|
|||||||
@@ -36,6 +36,16 @@ static void redraw(CFTypeRef viewRef, BOOL sync) {
|
|||||||
GioViewController *controller = [[GioViewController alloc] initWithNibName:nil bundle:nil];
|
GioViewController *controller = [[GioViewController alloc] initWithNibName:nil bundle:nil];
|
||||||
controller.screen = self.window.screen;
|
controller.screen = self.window.screen;
|
||||||
self.window.rootViewController = controller;
|
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];
|
[self.window makeKeyAndVisible];
|
||||||
return YES;
|
return YES;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user