--- a/src/anbox/platform/sdl/platform.cpp 2020-06-30 13:15:49.448320901 +0300 +++ b/src/anbox/platform/sdl/platform.cpp 2020-06-30 13:39:02.464989017 +0300 @@ -446,6 +446,17 @@ void Platform::window_wants_focus(const } } +void Platform::window_restored(const Window::Id &id) { + auto w = windows_.find(id); + if (w == windows_.end()) return; + + if (auto window = w->second.lock()) { + auto new_frame = window->frame(); + window->update_frame(new_frame); + window_manager_->resize_task(window->task(), new_frame, 3); + } +} + void Platform::window_moved(const Window::Id &id, const std::int32_t &x, const std::int32_t &y) { auto w = windows_.find(id); --- a/src/anbox/platform/sdl/platform.h 2020-06-30 13:16:06.144987589 +0300 +++ b/src/anbox/platform/sdl/platform.h 2020-06-30 13:39:35.294989051 +0300 @@ -54,6 +54,7 @@ class Platform : public std::enable_shar void window_deleted(const Window::Id &id) override; void window_wants_focus(const Window::Id &id) override; + void window_restored(const Window::Id &id) override; void window_moved(const Window::Id &id, const std::int32_t &x, const std::int32_t &y) override; void window_resized(const Window::Id &id, const std::int32_t &width, --- a/src/anbox/platform/sdl/window.cpp 2020-06-30 12:25:01.078318019 +0300 +++ b/src/anbox/platform/sdl/window.cpp 2020-06-30 13:40:04.924989082 +0300 @@ -193,6 +193,10 @@ void Window::process_event(const SDL_Eve break; case SDL_WINDOWEVENT_FOCUS_LOST: break; + case SDL_WINDOWEVENT_RESTORED: + if (observer_) + observer_->window_restored(id_); + break; // Not need to listen for SDL_WINDOWEVENT_RESIZED here as the // SDL_WINDOWEVENT_SIZE_CHANGED is always sent. case SDL_WINDOWEVENT_SIZE_CHANGED: --- a/src/anbox/platform/sdl/window.h 2020-06-30 13:14:34.174987490 +0300 +++ b/src/anbox/platform/sdl/window.h 2020-06-30 13:40:24.711655769 +0300 @@ -41,6 +41,7 @@ class Window : public std::enable_shared virtual ~Observer(); virtual void window_deleted(const Id &id) = 0; virtual void window_wants_focus(const Id &id) = 0; + virtual void window_restored(const Id &id) = 0; virtual void window_moved(const Id &id, const std::int32_t &x, const std::int32_t &y) = 0; virtual void window_resized(const Id &id, const std::int32_t &x,