summaryrefslogtreecommitdiff
diff options
authorAndrea Azzarone <azzaronea@gmail.com>2013-02-05 20:44:03 +0000
committerTarmac <>2013-02-05 20:44:03 +0000
commit1709d530770b70ea741946eaea91b80fbde84789 (patch)
tree14a07810945b414ce4c7bd114170aefe6e57a355
parentea2828e34f0b7c7bfebf78461a473dc59723afa2 (diff)
parent8a6f80ec34fb19e5b8e8428a5516bb62fb830602 (diff)
Add WindowManager::RestackBelow.
Approved by Brandon Schaefer, Marco Trevisan (TreviƱo). (bzr r3125)
-rw-r--r--tests/MockWindowManager.h1
-rw-r--r--unity-shared/PluginAdapter.cpp11
-rw-r--r--unity-shared/PluginAdapter.h1
-rw-r--r--unity-shared/StandaloneWindowManager.cpp3
-rw-r--r--unity-shared/StandaloneWindowManager.h1
-rw-r--r--unity-shared/WindowManager.h1
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;