|
@ -0,0 +1,53 @@ |
|
|
|
|
|
--- 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, |