You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-15 13:51:40 +00:00
UWP: Fix app crash when managed_object->update_clipboard() is called
This commit is contained in:
committed by
Rémi Verschelde
parent
7722461dc5
commit
f5693969f0
@@ -108,6 +108,9 @@ void App::SetWindow(CoreWindow ^ p_window) {
|
||||
window->VisibilityChanged +=
|
||||
ref new TypedEventHandler<CoreWindow ^, VisibilityChangedEventArgs ^>(this, &App::OnVisibilityChanged);
|
||||
|
||||
window->Activated +=
|
||||
ref new TypedEventHandler<CoreWindow ^, WindowActivatedEventArgs ^>(this, &App::OnWindowActivated);
|
||||
|
||||
window->Closed +=
|
||||
ref new TypedEventHandler<CoreWindow ^, CoreWindowEventArgs ^>(this, &App::OnWindowClosed);
|
||||
|
||||
@@ -447,6 +450,10 @@ void App::OnVisibilityChanged(CoreWindow ^ sender, VisibilityChangedEventArgs ^
|
||||
mWindowVisible = args->Visible;
|
||||
}
|
||||
|
||||
void App::OnWindowActivated(CoreWindow ^ sender, WindowActivatedEventArgs ^ args) {
|
||||
os->update_clipboard();
|
||||
}
|
||||
|
||||
void App::OnWindowClosed(CoreWindow ^ sender, CoreWindowEventArgs ^ args) {
|
||||
mWindowClosed = true;
|
||||
}
|
||||
|
||||
@@ -69,6 +69,7 @@ namespace GodotUWP
|
||||
// Window event handlers.
|
||||
void OnWindowSizeChanged(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::WindowSizeChangedEventArgs^ args);
|
||||
void OnVisibilityChanged(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::VisibilityChangedEventArgs^ args);
|
||||
void OnWindowActivated(CoreWindow ^ sender, WindowActivatedEventArgs ^ args);
|
||||
void OnWindowClosed(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::CoreWindowEventArgs^ args);
|
||||
|
||||
void pointer_event(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::PointerEventArgs^ args, bool p_pressed, bool p_is_wheel = false);
|
||||
|
||||
@@ -284,8 +284,6 @@ Error OS_UWP::initialize(const VideoMode &p_desired, int p_video_driver, int p_a
|
||||
|
||||
power_manager = memnew(PowerUWP);
|
||||
|
||||
managed_object->update_clipboard();
|
||||
|
||||
Clipboard::ContentChanged += ref new EventHandler<Platform::Object ^>(managed_object, &ManagedType::on_clipboard_changed);
|
||||
|
||||
accelerometer = Accelerometer::GetDefault();
|
||||
@@ -387,6 +385,11 @@ void OS_UWP::alert(const String &p_alert, const String &p_title) {
|
||||
msg->ShowAsync();
|
||||
}
|
||||
|
||||
void OS_UWP::update_clipboard() {
|
||||
// See https://stackoverflow.com/questions/58660743/uwp-app-crashes-when-clipboard-getcontent-is-called-from-inside-onnavigatedto
|
||||
managed_object->update_clipboard();
|
||||
}
|
||||
|
||||
void OS_UWP::ManagedType::alert_close(IUICommand ^ command) {
|
||||
alert_close_handle = false;
|
||||
}
|
||||
|
||||
@@ -226,6 +226,7 @@ public:
|
||||
|
||||
virtual bool _check_internal_feature_support(const String &p_feature);
|
||||
|
||||
void update_clipboard();
|
||||
void set_window(Windows::UI::Core::CoreWindow ^ p_window);
|
||||
void screen_size_changed();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user