diff options
| -rw-r--r-- | tests/MockWindowManager.h | 1 | ||||
| -rw-r--r-- | unity-shared/PluginAdapter.cpp | 11 | ||||
| -rw-r--r-- | unity-shared/PluginAdapter.h | 1 | ||||
| -rw-r--r-- | unity-shared/StandaloneWindowManager.cpp | 3 | ||||
| -rw-r--r-- | unity-shared/StandaloneWindowManager.h | 1 | ||||
| -rw-r--r-- | unity-shared/WindowManager.h | 1 |
6 files changed, 18 insertions, 0 deletions
diff --git a/tests/MockWindowManager.h b/tests/MockWindowManager.h index e517cbbb3..026d4baa3 100644 --- a/tests/MockWindowManager.h +++ b/tests/MockWindowManager.h @@ -58,6 +58,7 @@ class MockWindowManager : public WindowManager MOCK_METHOD1(Activate, void(Window)); MOCK_METHOD1(Raise, void(Window)); MOCK_METHOD1(Lower, void(Window)); + MOCK_METHOD2(RestackBelow, void(Window, Window)); MOCK_METHOD0(TerminateScale, void()); MOCK_CONST_METHOD0(IsScaleActive, bool()); diff --git a/unity-shared/PluginAdapter.cpp b/unity-shared/PluginAdapter.cpp index ed408b7f8..cea1a49f2 100644 --- a/unity-shared/PluginAdapter.cpp +++ b/unity-shared/PluginAdapter.cpp @@ -726,6 +726,17 @@ void PluginAdapter::Lower(Window window_id) window->lower(); } +void PluginAdapter::RestackBelow(Window window_id, Window sibiling_id) +{ + CompWindow* window = m_Screen->findWindow(window_id); + if (!window) + return; + + CompWindow* sibiling = m_Screen->findWindow(sibiling_id); + if (sibiling) + window->restackBelow(sibiling); +} + void PluginAdapter::FocusWindowGroup(std::vector<Window> const& window_ids, FocusVisibility focus_visibility, int monitor, bool only_top_win) diff --git a/unity-shared/PluginAdapter.h b/unity-shared/PluginAdapter.h index 55ead3770..ac0fbc588 100644 --- a/unity-shared/PluginAdapter.h +++ b/unity-shared/PluginAdapter.h @@ -147,6 +147,7 @@ public: void Activate(Window window_id); void Raise(Window window_id); void Lower(Window window_id); + void RestackBelow(Window window_id, Window sibiling_id) override; void ShowDesktop(); bool InShowDesktop() const; diff --git a/unity-shared/StandaloneWindowManager.cpp b/unity-shared/StandaloneWindowManager.cpp index 4f82eb9b1..fd278c185 100644 --- a/unity-shared/StandaloneWindowManager.cpp +++ b/unity-shared/StandaloneWindowManager.cpp @@ -300,6 +300,9 @@ void StandaloneWindowManager::Raise(Window window_id) void StandaloneWindowManager::Lower(Window window_id) {} +void StandaloneWindowManager::RestackBelow(Window window_id, Window sibiling_id) +{} + void StandaloneWindowManager::TerminateScale() {} diff --git a/unity-shared/StandaloneWindowManager.h b/unity-shared/StandaloneWindowManager.h index 1c06fcf4b..1023ccd82 100644 --- a/unity-shared/StandaloneWindowManager.h +++ b/unity-shared/StandaloneWindowManager.h @@ -93,6 +93,7 @@ public: virtual void Activate(Window window_id); virtual void Raise(Window window_id); virtual void Lower(Window window_id); + void RestackBelow(Window window_id, Window sibiling_id) override; virtual void Decorate(Window window_id) const; virtual void Undecorate(Window window_id) const; diff --git a/unity-shared/WindowManager.h b/unity-shared/WindowManager.h index 87d78e6ef..f4df3822a 100644 --- a/unity-shared/WindowManager.h +++ b/unity-shared/WindowManager.h @@ -101,6 +101,7 @@ public: virtual void Activate(Window window_id) = 0; virtual void Raise(Window window_id) = 0; virtual void Lower(Window window_id) = 0; + virtual void RestackBelow(Window window_id, Window sibiling_id) = 0; virtual void TerminateScale() = 0; virtual bool IsScaleActive() const = 0; |
