From f80f0f5f02b23dc454c8b833702564614e6dbcf4 Mon Sep 17 00:00:00 2001 From: Logan McNaughton <848146+loganmc10@users.noreply.github.com> Date: Wed, 27 May 2026 10:11:48 +0200 Subject: [PATCH] handle pause on android (#958) --- parallel-rdp/interface.cpp | 6 ++++++ src/device/vi.rs | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/parallel-rdp/interface.cpp b/parallel-rdp/interface.cpp index d962666..2e6329d 100644 --- a/parallel-rdp/interface.cpp +++ b/parallel-rdp/interface.cpp @@ -266,6 +266,12 @@ bool sdl_event_filter(void *userdata, SDL_Event *event) { joystick_event->joystick_id = event->jdevice.which; joystick_event->connected = false; SDL_RunOnMainThread(add_joystick_event, joystick_event, false); + } else if (event->type == SDL_EVENT_WILL_ENTER_BACKGROUND) { + wsi->end_frame(); + wsi->deinit_surface_and_swapchain(); + } else if (event->type == SDL_EVENT_RENDER_DEVICE_RESET) { + wsi->init_surface_swapchain(); + wsi->begin_frame(); } return 0; diff --git a/src/device/vi.rs b/src/device/vi.rs index 9cc072a..7f1ebd3 100644 --- a/src/device/vi.rs +++ b/src/device/vi.rs @@ -145,6 +145,8 @@ pub fn vertical_interrupt_event(device: &mut device::Device) { speed_limiter(device, speed_limiter_toggled); } + unsafe { sdl3_sys::events::SDL_PumpEvents() }; + ui::video::update_screen(); device.vi.vi_counter += 1; device.vi.elapsed_time += device.vi.frame_time; @@ -160,8 +162,6 @@ pub fn vertical_interrupt_event(device: &mut device::Device) { } } - unsafe { sdl3_sys::events::SDL_PumpEvents() }; - /* toggle vi field if in interlaced mode */ device.vi.field ^= (device.vi.regs[VI_STATUS_REG] >> 6) & 0x1;