|
@@ -393,9 +393,6 @@ static Vector2 get_mouse_pos(NSPoint locationInWindow, CGFloat backingScaleFacto
|
|
}
|
|
}
|
|
|
|
|
|
- (void)windowDidBecomeKey:(NSNotification *)notification {
|
|
- (void)windowDidBecomeKey:(NSNotification *)notification {
|
|
- //_GodotInputWindowFocus(window, GL_TRUE);
|
|
|
|
- //_GodotPlatformSetCursorMode(window, window->cursorMode);
|
|
|
|
-
|
|
|
|
if (OS_OSX::singleton->get_main_loop()) {
|
|
if (OS_OSX::singleton->get_main_loop()) {
|
|
get_mouse_pos(
|
|
get_mouse_pos(
|
|
[OS_OSX::singleton->window_object mouseLocationOutsideOfEventStream],
|
|
[OS_OSX::singleton->window_object mouseLocationOutsideOfEventStream],
|
|
@@ -404,25 +401,31 @@ static Vector2 get_mouse_pos(NSPoint locationInWindow, CGFloat backingScaleFacto
|
|
|
|
|
|
OS_OSX::singleton->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_FOCUS_IN);
|
|
OS_OSX::singleton->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_FOCUS_IN);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ OS_OSX::singleton->window_focused = true;
|
|
}
|
|
}
|
|
|
|
|
|
- (void)windowDidResignKey:(NSNotification *)notification {
|
|
- (void)windowDidResignKey:(NSNotification *)notification {
|
|
- //_GodotInputWindowFocus(window, GL_FALSE);
|
|
|
|
- //_GodotPlatformSetCursorMode(window, Godot_CURSOR_NORMAL);
|
|
|
|
if (OS_OSX::singleton->get_main_loop())
|
|
if (OS_OSX::singleton->get_main_loop())
|
|
OS_OSX::singleton->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_FOCUS_OUT);
|
|
OS_OSX::singleton->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_FOCUS_OUT);
|
|
|
|
+
|
|
|
|
+ OS_OSX::singleton->window_focused = false;
|
|
}
|
|
}
|
|
|
|
|
|
- (void)windowDidMiniaturize:(NSNotification *)notification {
|
|
- (void)windowDidMiniaturize:(NSNotification *)notification {
|
|
OS_OSX::singleton->wm_minimized(true);
|
|
OS_OSX::singleton->wm_minimized(true);
|
|
if (OS_OSX::singleton->get_main_loop())
|
|
if (OS_OSX::singleton->get_main_loop())
|
|
OS_OSX::singleton->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_FOCUS_OUT);
|
|
OS_OSX::singleton->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_FOCUS_OUT);
|
|
|
|
+
|
|
|
|
+ OS_OSX::singleton->window_focused = false;
|
|
};
|
|
};
|
|
|
|
|
|
- (void)windowDidDeminiaturize:(NSNotification *)notification {
|
|
- (void)windowDidDeminiaturize:(NSNotification *)notification {
|
|
OS_OSX::singleton->wm_minimized(false);
|
|
OS_OSX::singleton->wm_minimized(false);
|
|
if (OS_OSX::singleton->get_main_loop())
|
|
if (OS_OSX::singleton->get_main_loop())
|
|
OS_OSX::singleton->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_FOCUS_IN);
|
|
OS_OSX::singleton->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_FOCUS_IN);
|
|
|
|
+
|
|
|
|
+ OS_OSX::singleton->window_focused = true;
|
|
};
|
|
};
|
|
|
|
|
|
@end
|
|
@end
|
|
@@ -2607,6 +2610,10 @@ bool OS_OSX::is_window_always_on_top() const {
|
|
return [window_object level] == NSFloatingWindowLevel;
|
|
return [window_object level] == NSFloatingWindowLevel;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+bool OS_OSX::is_window_focused() const {
|
|
|
|
+ return window_focused;
|
|
|
|
+}
|
|
|
|
+
|
|
void OS_OSX::request_attention() {
|
|
void OS_OSX::request_attention() {
|
|
|
|
|
|
[NSApp requestUserAttention:NSCriticalRequest];
|
|
[NSApp requestUserAttention:NSCriticalRequest];
|
|
@@ -3059,6 +3066,7 @@ OS_OSX::OS_OSX() {
|
|
window_size = Vector2(1024, 600);
|
|
window_size = Vector2(1024, 600);
|
|
zoomed = false;
|
|
zoomed = false;
|
|
resizable = false;
|
|
resizable = false;
|
|
|
|
+ window_focused = true;
|
|
|
|
|
|
Vector<Logger *> loggers;
|
|
Vector<Logger *> loggers;
|
|
loggers.push_back(memnew(OSXTerminalLogger));
|
|
loggers.push_back(memnew(OSXTerminalLogger));
|