From 87b918375d1316be0974201423aa426c470d56d7 Mon Sep 17 00:00:00 2001 From: Simon Fels Date: Tue, 17 Jan 2017 18:26:16 +0100 Subject: [PATCH] Use the app package name as window title for now --- src/anbox/platform/default_policy.cpp | 9 +++++---- src/anbox/platform/default_policy.h | 3 ++- src/anbox/platform/policy.h | 3 +-- src/anbox/ubuntu/platform_policy.cpp | 4 ++-- src/anbox/ubuntu/platform_policy.h | 3 ++- src/anbox/ubuntu/window.cpp | 11 ++++------- src/anbox/ubuntu/window.h | 3 ++- src/anbox/wm/manager.cpp | 3 +-- src/anbox/wm/window.cpp | 6 ++++-- src/anbox/wm/window.h | 4 +++- 10 files changed, 26 insertions(+), 23 deletions(-) diff --git a/src/anbox/platform/default_policy.cpp b/src/anbox/platform/default_policy.cpp index d07e4df..e335157 100644 --- a/src/anbox/platform/default_policy.cpp +++ b/src/anbox/platform/default_policy.cpp @@ -23,8 +23,9 @@ namespace { class NullWindow : public anbox::wm::Window { public: NullWindow(const anbox::wm::Task::Id &task, - const anbox::graphics::Rect &frame) - : anbox::wm::Window(nullptr, task, frame) {} + const anbox::graphics::Rect &frame, + const std::string &title) + : anbox::wm::Window(nullptr, task, frame, title) {} }; } @@ -33,8 +34,8 @@ namespace platform { DefaultPolicy::DefaultPolicy() {} std::shared_ptr DefaultPolicy::create_window( - const anbox::wm::Task::Id &task, const anbox::graphics::Rect &frame) { - return std::make_shared<::NullWindow>(task, frame); + const anbox::wm::Task::Id &task, const anbox::graphics::Rect &frame, const std::string &title) { + return std::make_shared<::NullWindow>(task, frame, title); } void DefaultPolicy::set_clipboard_data(const ClipboardData &data) { diff --git a/src/anbox/platform/default_policy.h b/src/anbox/platform/default_policy.h index 65a09e3..68dfdc7 100644 --- a/src/anbox/platform/default_policy.h +++ b/src/anbox/platform/default_policy.h @@ -27,7 +27,8 @@ class DefaultPolicy : public Policy { DefaultPolicy(); std::shared_ptr create_window( const anbox::wm::Task::Id &task, - const anbox::graphics::Rect &frame) override; + const anbox::graphics::Rect &frame, + const std::string &title) override; void set_clipboard_data(const ClipboardData &data) override; ClipboardData get_clipboard_data() override; std::shared_ptr create_audio_sink() override; diff --git a/src/anbox/platform/policy.h b/src/anbox/platform/policy.h index a7fbfb2..59aefca 100644 --- a/src/anbox/platform/policy.h +++ b/src/anbox/platform/policy.h @@ -36,8 +36,7 @@ class Policy { public: virtual ~Policy(); - virtual std::shared_ptr create_window( - const anbox::wm::Task::Id &task, const anbox::graphics::Rect &frame) = 0; + virtual std::shared_ptr create_window(const anbox::wm::Task::Id &task, const anbox::graphics::Rect &frame, const std::string &title) = 0; struct ClipboardData { std::string text; diff --git a/src/anbox/ubuntu/platform_policy.cpp b/src/anbox/ubuntu/platform_policy.cpp index c1c9f5d..b7e43d7 100644 --- a/src/anbox/ubuntu/platform_policy.cpp +++ b/src/anbox/ubuntu/platform_policy.cpp @@ -200,14 +200,14 @@ Window::Id PlatformPolicy::next_window_id() { } std::shared_ptr PlatformPolicy::create_window( - const anbox::wm::Task::Id &task, const anbox::graphics::Rect &frame) { + const anbox::wm::Task::Id &task, const anbox::graphics::Rect &frame, const std::string &title) { if (!renderer_) { ERROR("Can't create window without a renderer set"); return nullptr; } auto id = next_window_id(); - auto w = std::make_shared(renderer_, id, task, shared_from_this(), frame); + auto w = std::make_shared(renderer_, id, task, shared_from_this(), frame, title); windows_.insert({id, w}); return w; } diff --git a/src/anbox/ubuntu/platform_policy.h b/src/anbox/ubuntu/platform_policy.h index 44e1d02..53bd763 100644 --- a/src/anbox/ubuntu/platform_policy.h +++ b/src/anbox/ubuntu/platform_policy.h @@ -50,7 +50,8 @@ class PlatformPolicy : public std::enable_shared_from_this, std::shared_ptr create_window( const anbox::wm::Task::Id &task, - const anbox::graphics::Rect &frame) override; + const anbox::graphics::Rect &frame, + const std::string &title) override; void window_deleted(const Window::Id &id) override; void window_wants_focus(const Window::Id &id) override; diff --git a/src/anbox/ubuntu/window.cpp b/src/anbox/ubuntu/window.cpp index 68ce319..6f4ba67 100644 --- a/src/anbox/ubuntu/window.cpp +++ b/src/anbox/ubuntu/window.cpp @@ -23,10 +23,6 @@ #include -namespace { -constexpr const char *default_window_name{"anbox"}; -} - namespace anbox { namespace ubuntu { Window::Id Window::Invalid{-1}; @@ -36,15 +32,16 @@ Window::Observer::~Observer() {} Window::Window(const std::shared_ptr &renderer, const Id &id, const wm::Task::Id &task, const std::shared_ptr &observer, - const graphics::Rect &frame) - : wm::Window(renderer, task, frame), + const graphics::Rect &frame, + const std::string &title) + : wm::Window(renderer, task, frame, title), id_(id), observer_(observer), native_display_(0), native_window_(0) { SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 1); - window_ = SDL_CreateWindow(default_window_name, frame.left(), frame.top(), + window_ = SDL_CreateWindow(title.c_str(), frame.left(), frame.top(), frame.width(), frame.height(), SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE); if (!window_) { diff --git a/src/anbox/ubuntu/window.h b/src/anbox/ubuntu/window.h index 686a49b..d5ad1a7 100644 --- a/src/anbox/ubuntu/window.h +++ b/src/anbox/ubuntu/window.h @@ -50,7 +50,8 @@ class Window : public std::enable_shared_from_this, public wm::Window { Window(const std::shared_ptr &renderer, const Id &id, const wm::Task::Id &task, const std::shared_ptr &observer, - const graphics::Rect &frame); + const graphics::Rect &frame, + const std::string &title); ~Window(); void process_event(const SDL_Event &event); diff --git a/src/anbox/wm/manager.cpp b/src/anbox/wm/manager.cpp index 25b9d80..f5b786c 100644 --- a/src/anbox/wm/manager.cpp +++ b/src/anbox/wm/manager.cpp @@ -60,8 +60,7 @@ void Manager::apply_window_state_update(const WindowState::List &updated, continue; } - auto platform_window = - platform_policy_->create_window(window.task(), window.frame()); + auto platform_window = platform_policy_->create_window(window.task(), window.frame(), window.package_name()); platform_window->attach(); windows_.insert({window.task(), platform_window}); } diff --git a/src/anbox/wm/window.cpp b/src/anbox/wm/window.cpp index 9203416..76deb1b 100644 --- a/src/anbox/wm/window.cpp +++ b/src/anbox/wm/window.cpp @@ -21,8 +21,8 @@ namespace anbox { namespace wm { -Window::Window(const std::shared_ptr &renderer, const Task::Id &task, const graphics::Rect &frame) - : renderer_(renderer), task_(task), frame_(frame) {} +Window::Window(const std::shared_ptr &renderer, const Task::Id &task, const graphics::Rect &frame, const std::string &title) + : renderer_(renderer), task_(task), frame_(frame), title_(title) {} Window::~Window() {} @@ -42,6 +42,8 @@ graphics::Rect Window::frame() const { return frame_; } EGLNativeWindowType Window::native_handle() const { return 0; } +std::string Window::title() const { return title_; } + bool Window::attach() { if (!renderer_) return false; diff --git a/src/anbox/wm/window.h b/src/anbox/wm/window.h index fc9634d..7878894 100644 --- a/src/anbox/wm/window.h +++ b/src/anbox/wm/window.h @@ -45,7 +45,7 @@ class Window { public: typedef std::vector List; - Window(const std::shared_ptr &renderer, const Task::Id &task, const graphics::Rect &frame); + Window(const std::shared_ptr &renderer, const Task::Id &task, const graphics::Rect &frame, const std::string &title); virtual ~Window(); bool attach(); @@ -57,11 +57,13 @@ class Window { virtual EGLNativeWindowType native_handle() const; graphics::Rect frame() const; Task::Id task() const; + std::string title() const; private: std::shared_ptr renderer_; Task::Id task_; graphics::Rect frame_; + std::string title_; }; } // namespace wm } // namespace anbox