diff options
| author | Andrea Azzarone <azzaronea@gmail.com> | 2013-02-05 00:09:24 +0100 |
|---|---|---|
| committer | Andrea Azzarone <azzaronea@gmail.com> | 2013-02-05 00:09:24 +0100 |
| commit | 3338fe59dc78d42f60cebd76314411a66a6d4738 (patch) | |
| tree | 6d9ef9ec589b57c79bbf0dba2a3e31e0b480fe8d | |
| parent | 8a6f80ec34fb19e5b8e8428a5516bb62fb830602 (diff) | |
Add GetWindowInStackingOrder.
(bzr r3096.2.2)
| -rw-r--r-- | tests/MockWindowManager.h | 1 | ||||
| -rw-r--r-- | unity-shared/PluginAdapter.cpp | 12 | ||||
| -rw-r--r-- | unity-shared/PluginAdapter.h | 1 | ||||
| -rw-r--r-- | unity-shared/StandaloneWindowManager.cpp | 5 | ||||
| -rw-r--r-- | unity-shared/StandaloneWindowManager.h | 1 | ||||
| -rw-r--r-- | unity-shared/WindowManager.h | 1 |
6 files changed, 21 insertions, 0 deletions
diff --git a/tests/MockWindowManager.h b/tests/MockWindowManager.h index 026d4baa3..3758bc520 100644 --- a/tests/MockWindowManager.h +++ b/tests/MockWindowManager.h @@ -33,6 +33,7 @@ class MockWindowManager : public WindowManager ~MockWindowManager(); MOCK_CONST_METHOD0(GetActiveWindow, Window()); + MOCK_CONST_METHOD0(GetWindowsInStackingOrder, std::vector<Window>()); MOCK_CONST_METHOD1(IsWindowDecorated, bool(Window)); MOCK_CONST_METHOD1(IsWindowMaximized, bool(Window)); MOCK_CONST_METHOD1(IsWindowOnCurrentDesktop, bool(Window)); diff --git a/unity-shared/PluginAdapter.cpp b/unity-shared/PluginAdapter.cpp index cea1a49f2..9fbc46598 100644 --- a/unity-shared/PluginAdapter.cpp +++ b/unity-shared/PluginAdapter.cpp @@ -431,6 +431,18 @@ Window PluginAdapter::GetActiveWindow() const return m_Screen->activeWindow(); } +std::vector<Window> PluginAdapter::GetWindowsInStackingOrder() const +{ + bool stacking_order = true; + auto const& windows = m_Screen->clientList(stacking_order); + + std::vector<Window> ret; + for (auto const& window : windows) + ret.push_back(window->id()); + + return ret; +} + bool PluginAdapter::IsWindowMaximized(Window window_id) const { CompWindow* window = m_Screen->findWindow(window_id); diff --git a/unity-shared/PluginAdapter.h b/unity-shared/PluginAdapter.h index ac0fbc588..0827a6cf7 100644 --- a/unity-shared/PluginAdapter.h +++ b/unity-shared/PluginAdapter.h @@ -120,6 +120,7 @@ public: void NotifyNewDecorationState(Window xid); Window GetActiveWindow() const; + std::vector<Window> GetWindowsInStackingOrder() const override; void Decorate(Window xid) const; void Undecorate(Window xid) const; diff --git a/unity-shared/StandaloneWindowManager.cpp b/unity-shared/StandaloneWindowManager.cpp index fd278c185..cba2db612 100644 --- a/unity-shared/StandaloneWindowManager.cpp +++ b/unity-shared/StandaloneWindowManager.cpp @@ -91,6 +91,11 @@ Window StandaloneWindowManager::GetActiveWindow() const return 0; } +std::vector<Window> StandaloneWindowManager::GetWindowsInStackingOrder() const +{ + return std::vector<Window>(); +} + bool StandaloneWindowManager::IsWindowMaximized(Window window_id) const { auto it = standalone_windows_.find(window_id); diff --git a/unity-shared/StandaloneWindowManager.h b/unity-shared/StandaloneWindowManager.h index 1023ccd82..7e20f52e4 100644 --- a/unity-shared/StandaloneWindowManager.h +++ b/unity-shared/StandaloneWindowManager.h @@ -66,6 +66,7 @@ public: StandaloneWindowManager(); virtual Window GetActiveWindow() const; + std::vector<Window> GetWindowsInStackingOrder() const override; virtual bool IsWindowMaximized(Window window_id) const; virtual bool IsWindowDecorated(Window window_id) const; diff --git a/unity-shared/WindowManager.h b/unity-shared/WindowManager.h index f4df3822a..c24355d96 100644 --- a/unity-shared/WindowManager.h +++ b/unity-shared/WindowManager.h @@ -74,6 +74,7 @@ public: static WindowManager& Default(); virtual Window GetActiveWindow() const = 0; + virtual std::vector<Window> GetWindowsInStackingOrder() const = 0; virtual bool IsWindowMaximized(Window window_id) const = 0; virtual bool IsWindowDecorated(Window window_id) const = 0; |
