summaryrefslogtreecommitdiff
diff options
authorAndrea Azzarone <azzaronea@gmail.com>2013-02-05 00:16:58 +0100
committerAndrea Azzarone <azzaronea@gmail.com>2013-02-05 00:16:58 +0100
commitb6fc71dea4632bea3d9d81c9e8fb36cb20368295 (patch)
tree7f89af1fa3723a781ee0721c52befc757e4f63de
parent92fe9cc3d2f3e63ba2b9c8f9f17fc09f11322998 (diff)
parentbe64f5c5d02577d39b4ac881061685a9cd609b0c (diff)
Merged improve-standalone-window-manager into alt-to-scroll.
(bzr r3096.4.2)
-rw-r--r--tests/MockWindowManager.h1
-rw-r--r--unity-shared/PluginAdapter.cpp12
-rw-r--r--unity-shared/PluginAdapter.h1
-rw-r--r--unity-shared/StandaloneWindowManager.cpp5
-rw-r--r--unity-shared/StandaloneWindowManager.h1
-rw-r--r--unity-shared/WindowManager.h1
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 b086dda89..972a86ac7 100644
--- a/unity-shared/StandaloneWindowManager.cpp
+++ b/unity-shared/StandaloneWindowManager.cpp
@@ -105,6 +105,11 @@ StandaloneWindow::Ptr StandaloneWindowManager::GetWindowByXid(Window window_id)
return StandaloneWindow::Ptr();
}
+std::vector<Window> StandaloneWindowManager::GetWindowsInStackingOrder() const
+{
+ return standalone_windows_;
+}
+
bool StandaloneWindowManager::IsWindowMaximized(Window window_id) const
{
auto window = GetWindowByXid(window_id);
diff --git a/unity-shared/StandaloneWindowManager.h b/unity-shared/StandaloneWindowManager.h
index be0fc7b50..d34836432 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;