mirror of
https://github.com/godotengine/godot.git
synced 2024-11-25 13:43:15 +00:00
Add a separate application focus/in notification out from Window focus notification.
This commit is contained in:
parent
27605769c4
commit
438c380458
@ -48,8 +48,10 @@ void MainLoop::_bind_methods() {
|
|||||||
BIND_CONSTANT(NOTIFICATION_WM_ABOUT);
|
BIND_CONSTANT(NOTIFICATION_WM_ABOUT);
|
||||||
BIND_CONSTANT(NOTIFICATION_CRASH);
|
BIND_CONSTANT(NOTIFICATION_CRASH);
|
||||||
BIND_CONSTANT(NOTIFICATION_OS_IME_UPDATE);
|
BIND_CONSTANT(NOTIFICATION_OS_IME_UPDATE);
|
||||||
BIND_CONSTANT(NOTIFICATION_APP_RESUMED);
|
BIND_CONSTANT(NOTIFICATION_APPLICATION_RESUMED);
|
||||||
BIND_CONSTANT(NOTIFICATION_APP_PAUSED);
|
BIND_CONSTANT(NOTIFICATION_APPLICATION_PAUSED);
|
||||||
|
BIND_CONSTANT(NOTIFICATION_APPLICATION_FOCUS_IN);
|
||||||
|
BIND_CONSTANT(NOTIFICATION_APPLICATION_FOCUS_OUT);
|
||||||
|
|
||||||
ADD_SIGNAL(MethodInfo("on_request_permissions_result", PropertyInfo(Variant::STRING, "permission"), PropertyInfo(Variant::BOOL, "granted")));
|
ADD_SIGNAL(MethodInfo("on_request_permissions_result", PropertyInfo(Variant::STRING, "permission"), PropertyInfo(Variant::BOOL, "granted")));
|
||||||
};
|
};
|
||||||
|
@ -52,8 +52,10 @@ public:
|
|||||||
NOTIFICATION_WM_ABOUT = 2011,
|
NOTIFICATION_WM_ABOUT = 2011,
|
||||||
NOTIFICATION_CRASH = 2012,
|
NOTIFICATION_CRASH = 2012,
|
||||||
NOTIFICATION_OS_IME_UPDATE = 2013,
|
NOTIFICATION_OS_IME_UPDATE = 2013,
|
||||||
NOTIFICATION_APP_RESUMED = 2014,
|
NOTIFICATION_APPLICATION_RESUMED = 2014,
|
||||||
NOTIFICATION_APP_PAUSED = 2015,
|
NOTIFICATION_APPLICATION_PAUSED = 2015,
|
||||||
|
NOTIFICATION_APPLICATION_FOCUS_IN = 2016,
|
||||||
|
NOTIFICATION_APPLICATION_FOCUS_OUT = 2017,
|
||||||
};
|
};
|
||||||
|
|
||||||
virtual void init();
|
virtual void init();
|
||||||
|
@ -435,14 +435,14 @@ void EditorNode::_notification(int p_what) {
|
|||||||
/* DO NOT LOAD SCENES HERE, WAIT FOR FILE SCANNING AND REIMPORT TO COMPLETE */
|
/* DO NOT LOAD SCENES HERE, WAIT FOR FILE SCANNING AND REIMPORT TO COMPLETE */
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case NOTIFICATION_WM_FOCUS_IN: {
|
case NOTIFICATION_APPLICATION_FOCUS_IN: {
|
||||||
// Restore the original FPS cap after focusing back on the editor
|
// Restore the original FPS cap after focusing back on the editor
|
||||||
OS::get_singleton()->set_low_processor_usage_mode_sleep_usec(int(EDITOR_GET("interface/editor/low_processor_mode_sleep_usec")));
|
OS::get_singleton()->set_low_processor_usage_mode_sleep_usec(int(EDITOR_GET("interface/editor/low_processor_mode_sleep_usec")));
|
||||||
|
|
||||||
EditorFileSystem::get_singleton()->scan_changes();
|
EditorFileSystem::get_singleton()->scan_changes();
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case NOTIFICATION_WM_FOCUS_OUT: {
|
case NOTIFICATION_APPLICATION_FOCUS_OUT: {
|
||||||
// Set a low FPS cap to decrease CPU/GPU usage while the editor is unfocused
|
// Set a low FPS cap to decrease CPU/GPU usage while the editor is unfocused
|
||||||
OS::get_singleton()->set_low_processor_usage_mode_sleep_usec(int(EDITOR_GET("interface/editor/unfocused_low_processor_mode_sleep_usec")));
|
OS::get_singleton()->set_low_processor_usage_mode_sleep_usec(int(EDITOR_GET("interface/editor/unfocused_low_processor_mode_sleep_usec")));
|
||||||
} break;
|
} break;
|
||||||
|
@ -39,7 +39,7 @@
|
|||||||
#include "scene/gui/margin_container.h"
|
#include "scene/gui/margin_container.h"
|
||||||
|
|
||||||
void EditorPluginSettings::_notification(int p_what) {
|
void EditorPluginSettings::_notification(int p_what) {
|
||||||
if (p_what == NOTIFICATION_WM_FOCUS_IN) {
|
if (p_what == NOTIFICATION_WM_WINDOW_FOCUS_IN) {
|
||||||
update_plugins();
|
update_plugins();
|
||||||
} else if (p_what == Node::NOTIFICATION_READY) {
|
} else if (p_what == Node::NOTIFICATION_READY) {
|
||||||
plugin_config_dialog->connect_compat("plugin_ready", EditorNode::get_singleton(), "_on_plugin_ready");
|
plugin_config_dialog->connect_compat("plugin_ready", EditorNode::get_singleton(), "_on_plugin_ready");
|
||||||
|
@ -182,8 +182,8 @@ void EditorSpinSlider::_grabber_gui_input(const Ref<InputEvent> &p_event) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void EditorSpinSlider::_notification(int p_what) {
|
void EditorSpinSlider::_notification(int p_what) {
|
||||||
if (p_what == NOTIFICATION_WM_FOCUS_OUT ||
|
if (p_what == NOTIFICATION_WM_WINDOW_FOCUS_OUT ||
|
||||||
p_what == NOTIFICATION_WM_FOCUS_IN ||
|
p_what == NOTIFICATION_WM_WINDOW_FOCUS_IN ||
|
||||||
p_what == NOTIFICATION_EXIT_TREE) {
|
p_what == NOTIFICATION_EXIT_TREE) {
|
||||||
if (grabbing_spinner) {
|
if (grabbing_spinner) {
|
||||||
grabber->hide();
|
grabber->hide();
|
||||||
|
@ -1337,7 +1337,7 @@ void ScriptEditor::_notification(int p_what) {
|
|||||||
editor->disconnect("stop_pressed", callable_mp(this, &ScriptEditor::_editor_stop));
|
editor->disconnect("stop_pressed", callable_mp(this, &ScriptEditor::_editor_stop));
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case NOTIFICATION_WM_FOCUS_IN: {
|
case NOTIFICATION_WM_WINDOW_FOCUS_IN: {
|
||||||
_test_script_times_on_disk();
|
_test_script_times_on_disk();
|
||||||
_update_modified_scripts_for_external_editor();
|
_update_modified_scripts_for_external_editor();
|
||||||
} break;
|
} break;
|
||||||
|
@ -338,7 +338,7 @@ void ShaderEditor::_menu_option(int p_option) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ShaderEditor::_notification(int p_what) {
|
void ShaderEditor::_notification(int p_what) {
|
||||||
if (p_what == NOTIFICATION_WM_FOCUS_IN) {
|
if (p_what == NOTIFICATION_WM_WINDOW_FOCUS_IN) {
|
||||||
_check_for_external_edit();
|
_check_for_external_edit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -200,7 +200,7 @@ void ShaderFileEditor::_update_options() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ShaderFileEditor::_notification(int p_what) {
|
void ShaderFileEditor::_notification(int p_what) {
|
||||||
if (p_what == NOTIFICATION_WM_FOCUS_IN) {
|
if (p_what == NOTIFICATION_WM_WINDOW_FOCUS_IN) {
|
||||||
if (is_visible_in_tree() && shader_file.is_valid()) {
|
if (is_visible_in_tree() && shader_file.is_valid()) {
|
||||||
_update_options();
|
_update_options();
|
||||||
}
|
}
|
||||||
|
@ -780,7 +780,7 @@ void TextureRegionEditor::_notification(int p_what) {
|
|||||||
_update_autoslice();
|
_update_autoslice();
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
case NOTIFICATION_WM_FOCUS_IN: {
|
case NOTIFICATION_WM_WINDOW_FOCUS_IN: {
|
||||||
// This happens when the user leaves the Editor and returns,
|
// This happens when the user leaves the Editor and returns,
|
||||||
// they could have changed the textures, so the cache is cleared.
|
// they could have changed the textures, so the cache is cleared.
|
||||||
cache_map.clear();
|
cache_map.clear();
|
||||||
|
@ -1853,7 +1853,7 @@ void NativeReloadNode::_notification(int p_what) {
|
|||||||
#ifdef TOOLS_ENABLED
|
#ifdef TOOLS_ENABLED
|
||||||
|
|
||||||
switch (p_what) {
|
switch (p_what) {
|
||||||
case NOTIFICATION_WM_FOCUS_OUT: {
|
case NOTIFICATION_APPLICATION_FOCUS_OUT: {
|
||||||
if (unloaded) {
|
if (unloaded) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1887,7 +1887,7 @@ void NativeReloadNode::_notification(int p_what) {
|
|||||||
|
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case NOTIFICATION_WM_FOCUS_IN: {
|
case NOTIFICATION_APPLICATION_FOCUS_IN: {
|
||||||
if (!unloaded) {
|
if (!unloaded) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -457,7 +457,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_onRendererResumed(JNI
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (os_android->get_main_loop()) {
|
if (os_android->get_main_loop()) {
|
||||||
os_android->get_main_loop()->notification(MainLoop::NOTIFICATION_APP_RESUMED);
|
os_android->get_main_loop()->notification(MainLoop::NOTIFICATION_APPLICATION_RESUMED);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -466,7 +466,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_onRendererPaused(JNIE
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (os_android->get_main_loop()) {
|
if (os_android->get_main_loop()) {
|
||||||
os_android->get_main_loop()->notification(MainLoop::NOTIFICATION_APP_PAUSED);
|
os_android->get_main_loop()->notification(MainLoop::NOTIFICATION_APPLICATION_PAUSED);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1790,6 +1790,12 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA
|
|||||||
// Restore mouse mode
|
// Restore mouse mode
|
||||||
_set_mouse_mode_impl(mouse_mode);
|
_set_mouse_mode_impl(mouse_mode);
|
||||||
|
|
||||||
|
if (!app_focused) {
|
||||||
|
if (OS::get_singleton()->get_main_loop()) {
|
||||||
|
OS::get_singleton()->get_main_loop()->notification(MainLoop::NOTIFICATION_APPLICATION_FOCUS_IN);
|
||||||
|
}
|
||||||
|
app_focused = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case WM_KILLFOCUS: {
|
case WM_KILLFOCUS: {
|
||||||
@ -1805,6 +1811,19 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA
|
|||||||
}
|
}
|
||||||
touch_state.clear();
|
touch_state.clear();
|
||||||
|
|
||||||
|
bool self_steal = false;
|
||||||
|
HWND new_hwnd = (HWND)wParam;
|
||||||
|
if (IsWindow(new_hwnd)) {
|
||||||
|
self_steal = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!self_steal) {
|
||||||
|
if (OS::get_singleton()->get_main_loop()) {
|
||||||
|
OS::get_singleton()->get_main_loop()->notification(MainLoop::NOTIFICATION_APPLICATION_FOCUS_OUT);
|
||||||
|
}
|
||||||
|
app_focused = false;
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case WM_ACTIVATE: // Watch For Window Activate Message
|
case WM_ACTIVATE: // Watch For Window Activate Message
|
||||||
|
@ -317,6 +317,7 @@ private:
|
|||||||
int pressrc;
|
int pressrc;
|
||||||
HINSTANCE hInstance; // Holds The Instance Of The Application
|
HINSTANCE hInstance; // Holds The Instance Of The Application
|
||||||
String rendering_driver;
|
String rendering_driver;
|
||||||
|
bool app_focused = false;
|
||||||
|
|
||||||
struct WindowData {
|
struct WindowData {
|
||||||
HWND hWnd;
|
HWND hWnd;
|
||||||
|
@ -688,12 +688,12 @@ void LineEdit::_notification(int p_what) {
|
|||||||
update_placeholder_width();
|
update_placeholder_width();
|
||||||
update();
|
update();
|
||||||
} break;
|
} break;
|
||||||
case NOTIFICATION_WM_FOCUS_IN: {
|
case NOTIFICATION_WM_WINDOW_FOCUS_IN: {
|
||||||
window_has_focus = true;
|
window_has_focus = true;
|
||||||
draw_caret = true;
|
draw_caret = true;
|
||||||
update();
|
update();
|
||||||
} break;
|
} break;
|
||||||
case NOTIFICATION_WM_FOCUS_OUT: {
|
case NOTIFICATION_WM_WINDOW_FOCUS_OUT: {
|
||||||
window_has_focus = false;
|
window_has_focus = false;
|
||||||
draw_caret = false;
|
draw_caret = false;
|
||||||
update();
|
update();
|
||||||
|
@ -603,12 +603,12 @@ void TextEdit::_notification(int p_what) {
|
|||||||
_update_wrap_at();
|
_update_wrap_at();
|
||||||
syntax_highlighting_cache.clear();
|
syntax_highlighting_cache.clear();
|
||||||
} break;
|
} break;
|
||||||
case NOTIFICATION_WM_FOCUS_IN: {
|
case NOTIFICATION_WM_WINDOW_FOCUS_IN: {
|
||||||
window_has_focus = true;
|
window_has_focus = true;
|
||||||
draw_caret = true;
|
draw_caret = true;
|
||||||
update();
|
update();
|
||||||
} break;
|
} break;
|
||||||
case NOTIFICATION_WM_FOCUS_OUT: {
|
case NOTIFICATION_WM_WINDOW_FOCUS_OUT: {
|
||||||
window_has_focus = false;
|
window_has_focus = false;
|
||||||
draw_caret = false;
|
draw_caret = false;
|
||||||
update();
|
update();
|
||||||
|
@ -2857,8 +2857,8 @@ void Node::_bind_methods() {
|
|||||||
|
|
||||||
BIND_CONSTANT(NOTIFICATION_WM_MOUSE_ENTER);
|
BIND_CONSTANT(NOTIFICATION_WM_MOUSE_ENTER);
|
||||||
BIND_CONSTANT(NOTIFICATION_WM_MOUSE_EXIT);
|
BIND_CONSTANT(NOTIFICATION_WM_MOUSE_EXIT);
|
||||||
BIND_CONSTANT(NOTIFICATION_WM_FOCUS_IN);
|
BIND_CONSTANT(NOTIFICATION_WM_WINDOW_FOCUS_IN);
|
||||||
BIND_CONSTANT(NOTIFICATION_WM_FOCUS_OUT);
|
BIND_CONSTANT(NOTIFICATION_WM_WINDOW_FOCUS_OUT);
|
||||||
BIND_CONSTANT(NOTIFICATION_WM_CLOSE_REQUEST);
|
BIND_CONSTANT(NOTIFICATION_WM_CLOSE_REQUEST);
|
||||||
BIND_CONSTANT(NOTIFICATION_WM_GO_BACK_REQUEST);
|
BIND_CONSTANT(NOTIFICATION_WM_GO_BACK_REQUEST);
|
||||||
BIND_CONSTANT(NOTIFICATION_WM_SIZE_CHANGED);
|
BIND_CONSTANT(NOTIFICATION_WM_SIZE_CHANGED);
|
||||||
@ -2867,8 +2867,10 @@ void Node::_bind_methods() {
|
|||||||
BIND_CONSTANT(NOTIFICATION_WM_ABOUT);
|
BIND_CONSTANT(NOTIFICATION_WM_ABOUT);
|
||||||
BIND_CONSTANT(NOTIFICATION_CRASH);
|
BIND_CONSTANT(NOTIFICATION_CRASH);
|
||||||
BIND_CONSTANT(NOTIFICATION_OS_IME_UPDATE);
|
BIND_CONSTANT(NOTIFICATION_OS_IME_UPDATE);
|
||||||
BIND_CONSTANT(NOTIFICATION_APP_RESUMED);
|
BIND_CONSTANT(NOTIFICATION_APPLICATION_RESUMED);
|
||||||
BIND_CONSTANT(NOTIFICATION_APP_PAUSED);
|
BIND_CONSTANT(NOTIFICATION_APPLICATION_PAUSED);
|
||||||
|
BIND_CONSTANT(NOTIFICATION_APPLICATION_FOCUS_IN);
|
||||||
|
BIND_CONSTANT(NOTIFICATION_APPLICATION_FOCUS_OUT);
|
||||||
|
|
||||||
BIND_ENUM_CONSTANT(PAUSE_MODE_INHERIT);
|
BIND_ENUM_CONSTANT(PAUSE_MODE_INHERIT);
|
||||||
BIND_ENUM_CONSTANT(PAUSE_MODE_STOP);
|
BIND_ENUM_CONSTANT(PAUSE_MODE_STOP);
|
||||||
|
@ -243,8 +243,8 @@ public:
|
|||||||
|
|
||||||
NOTIFICATION_WM_MOUSE_ENTER = 1002,
|
NOTIFICATION_WM_MOUSE_ENTER = 1002,
|
||||||
NOTIFICATION_WM_MOUSE_EXIT = 1003,
|
NOTIFICATION_WM_MOUSE_EXIT = 1003,
|
||||||
NOTIFICATION_WM_FOCUS_IN = 1004,
|
NOTIFICATION_WM_WINDOW_FOCUS_IN = 1004,
|
||||||
NOTIFICATION_WM_FOCUS_OUT = 1005,
|
NOTIFICATION_WM_WINDOW_FOCUS_OUT = 1005,
|
||||||
NOTIFICATION_WM_CLOSE_REQUEST = 1006,
|
NOTIFICATION_WM_CLOSE_REQUEST = 1006,
|
||||||
NOTIFICATION_WM_GO_BACK_REQUEST = 1007,
|
NOTIFICATION_WM_GO_BACK_REQUEST = 1007,
|
||||||
NOTIFICATION_WM_SIZE_CHANGED = 1008,
|
NOTIFICATION_WM_SIZE_CHANGED = 1008,
|
||||||
@ -255,8 +255,10 @@ public:
|
|||||||
NOTIFICATION_WM_ABOUT = MainLoop::NOTIFICATION_WM_ABOUT,
|
NOTIFICATION_WM_ABOUT = MainLoop::NOTIFICATION_WM_ABOUT,
|
||||||
NOTIFICATION_CRASH = MainLoop::NOTIFICATION_CRASH,
|
NOTIFICATION_CRASH = MainLoop::NOTIFICATION_CRASH,
|
||||||
NOTIFICATION_OS_IME_UPDATE = MainLoop::NOTIFICATION_OS_IME_UPDATE,
|
NOTIFICATION_OS_IME_UPDATE = MainLoop::NOTIFICATION_OS_IME_UPDATE,
|
||||||
NOTIFICATION_APP_RESUMED = MainLoop::NOTIFICATION_APP_RESUMED,
|
NOTIFICATION_APPLICATION_RESUMED = MainLoop::NOTIFICATION_APPLICATION_RESUMED,
|
||||||
NOTIFICATION_APP_PAUSED = MainLoop::NOTIFICATION_APP_PAUSED
|
NOTIFICATION_APPLICATION_PAUSED = MainLoop::NOTIFICATION_APPLICATION_PAUSED,
|
||||||
|
NOTIFICATION_APPLICATION_FOCUS_IN = MainLoop::NOTIFICATION_APPLICATION_FOCUS_IN,
|
||||||
|
NOTIFICATION_APPLICATION_FOCUS_OUT = MainLoop::NOTIFICATION_APPLICATION_FOCUS_OUT
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -587,9 +587,11 @@ void SceneTree::_notification(int p_notification) {
|
|||||||
case NOTIFICATION_OS_IME_UPDATE:
|
case NOTIFICATION_OS_IME_UPDATE:
|
||||||
case NOTIFICATION_WM_ABOUT:
|
case NOTIFICATION_WM_ABOUT:
|
||||||
case NOTIFICATION_CRASH:
|
case NOTIFICATION_CRASH:
|
||||||
case NOTIFICATION_APP_RESUMED:
|
case NOTIFICATION_APPLICATION_RESUMED:
|
||||||
case NOTIFICATION_APP_PAUSED: {
|
case NOTIFICATION_APPLICATION_PAUSED:
|
||||||
get_root()->propagate_notification(p_notification);
|
case NOTIFICATION_APPLICATION_FOCUS_IN:
|
||||||
|
case NOTIFICATION_APPLICATION_FOCUS_OUT: {
|
||||||
|
get_root()->propagate_notification(p_notification); //pass these to nodes, since they are mirrored
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -815,7 +815,7 @@ void Viewport::_notification(int p_what) {
|
|||||||
|
|
||||||
} break;
|
} break;
|
||||||
case NOTIFICATION_WM_MOUSE_EXIT:
|
case NOTIFICATION_WM_MOUSE_EXIT:
|
||||||
case NOTIFICATION_WM_FOCUS_OUT: {
|
case NOTIFICATION_WM_WINDOW_FOCUS_OUT: {
|
||||||
_drop_physics_mouseover();
|
_drop_physics_mouseover();
|
||||||
|
|
||||||
if (gui.mouse_focus && !gui.forced_mouse_focus) {
|
if (gui.mouse_focus && !gui.forced_mouse_focus) {
|
||||||
|
@ -316,13 +316,13 @@ void Window::_event_callback(DisplayServer::WindowEvent p_event) {
|
|||||||
} break;
|
} break;
|
||||||
case DisplayServer::WINDOW_EVENT_FOCUS_IN: {
|
case DisplayServer::WINDOW_EVENT_FOCUS_IN: {
|
||||||
focused = true;
|
focused = true;
|
||||||
_propagate_window_notification(this, NOTIFICATION_WM_FOCUS_IN);
|
_propagate_window_notification(this, NOTIFICATION_WM_WINDOW_FOCUS_IN);
|
||||||
emit_signal("focus_entered");
|
emit_signal("focus_entered");
|
||||||
|
|
||||||
} break;
|
} break;
|
||||||
case DisplayServer::WINDOW_EVENT_FOCUS_OUT: {
|
case DisplayServer::WINDOW_EVENT_FOCUS_OUT: {
|
||||||
focused = false;
|
focused = false;
|
||||||
_propagate_window_notification(this, NOTIFICATION_WM_FOCUS_OUT);
|
_propagate_window_notification(this, NOTIFICATION_WM_WINDOW_FOCUS_OUT);
|
||||||
emit_signal("focus_exited");
|
emit_signal("focus_exited");
|
||||||
} break;
|
} break;
|
||||||
case DisplayServer::WINDOW_EVENT_CLOSE_REQUEST: {
|
case DisplayServer::WINDOW_EVENT_CLOSE_REQUEST: {
|
||||||
|
Loading…
Reference in New Issue
Block a user