summaryrefslogtreecommitdiffstats
path: root/platform/windows/display_server_windows.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/windows/display_server_windows.cpp')
-rw-r--r--platform/windows/display_server_windows.cpp49
1 files changed, 28 insertions, 21 deletions
diff --git a/platform/windows/display_server_windows.cpp b/platform/windows/display_server_windows.cpp
index b84e1f8eea..62e1a433e2 100644
--- a/platform/windows/display_server_windows.cpp
+++ b/platform/windows/display_server_windows.cpp
@@ -1832,24 +1832,6 @@ void DisplayServerWindows::window_set_size(const Size2i p_size, WindowID p_windo
int w = p_size.width;
int h = p_size.height;
-
- wd.width = w;
- wd.height = h;
-
-#if defined(RD_ENABLED)
- if (rendering_context) {
- rendering_context->window_set_size(p_window, w, h);
- }
-#endif
-#if defined(GLES3_ENABLED)
- if (gl_manager_native) {
- gl_manager_native->window_resize(p_window, w, h);
- }
- if (gl_manager_angle) {
- gl_manager_angle->window_resize(p_window, w, h);
- }
-#endif
-
RECT rect;
GetWindowRect(wd.hWnd, &rect);
@@ -3408,9 +3390,11 @@ bool DisplayServerWindows::is_window_transparency_available() const {
return false;
}
}
+#if defined(RD_ENABLED)
if (rendering_device && !rendering_device->is_composite_alpha_supported()) {
return false;
}
+#endif
return OS::get_singleton()->is_layered_allowed();
}
@@ -3840,7 +3824,12 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA
}
}
if (system_theme_changed.is_valid()) {
- system_theme_changed.call();
+ Variant ret;
+ Callable::CallError ce;
+ system_theme_changed.callp(nullptr, 0, ret, ce);
+ if (ce.error != Callable::CallError::CALL_OK) {
+ ERR_PRINT(vformat("Failed to execute system theme changed callback: %s.", Variant::get_callable_error_text(system_theme_changed, nullptr, 0, ce)));
+ }
}
} break;
case WM_THEMECHANGED: {
@@ -3895,10 +3884,13 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA
} else if (indicators[iid].callback.is_valid()) {
Variant v_button = mb;
Variant v_pos = mouse_get_position();
- Variant *v_args[2] = { &v_button, &v_pos };
+ const Variant *v_args[2] = { &v_button, &v_pos };
Variant ret;
Callable::CallError ce;
indicators[iid].callback.callp((const Variant **)&v_args, 2, ret, ce);
+ if (ce.error != Callable::CallError::CALL_OK) {
+ ERR_PRINT(vformat("Failed to execute status indicator callback: %s.", Variant::get_callable_error_text(indicators[iid].callback, v_args, 2, ce)));
+ }
}
}
return 0;
@@ -4639,6 +4631,14 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA
rendering_context->window_set_size(window_id, window.width, window.height);
}
#endif
+#if defined(GLES3_ENABLED)
+ if (gl_manager_native) {
+ gl_manager_native->window_resize(window_id, window.width, window.height);
+ }
+ if (gl_manager_angle) {
+ gl_manager_angle->window_resize(window_id, window.width, window.height);
+ }
+#endif
}
if (!window.minimized && (!(window_pos_params->flags & SWP_NOMOVE) || window_pos_params->flags & SWP_FRAMECHANGED)) {
@@ -4866,7 +4866,14 @@ LRESULT DisplayServerWindows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA
}
if (files.size() && windows[window_id].drop_files_callback.is_valid()) {
- windows[window_id].drop_files_callback.call(files);
+ Variant v_files = files;
+ const Variant *v_args[1] = { &v_files };
+ Variant ret;
+ Callable::CallError ce;
+ windows[window_id].drop_files_callback.callp((const Variant **)&v_args, 1, ret, ce);
+ if (ce.error != Callable::CallError::CALL_OK) {
+ ERR_PRINT(vformat("Failed to execute drop files callback: %s.", Variant::get_callable_error_text(windows[window_id].drop_files_callback, v_args, 1, ce)));
+ }
}
} break;
default: {