Merge lp:~alan-griffiths/miral/WindowManagementPolicy-advise_raise into lp:miral

Proposed by Alan Griffiths on 2016-06-08
Status: Merged
Approved by: Gerry Boland on 2016-06-08
Approved revision: 204
Merged at revision: 202
Proposed branch: lp:~alan-griffiths/miral/WindowManagementPolicy-advise_raise
Merge into: lp:miral
Diff against target: 145 lines (+36/-12)
9 files modified
include/miral/canonical_window_manager.h (+1/-0)
include/miral/window_management_policy.h (+7/-1)
miral-kiosk/kiosk_window_manager.cpp (+4/-0)
miral-kiosk/kiosk_window_manager.h (+1/-0)
miral-shell/miral-run.sh (+1/-1)
miral-shell/tiling_window_manager.cpp (+4/-0)
miral-shell/tiling_window_manager.h (+1/-0)
miral/basic_window_manager.cpp (+13/-10)
miral/canonical_window_manager.cpp (+4/-0)
To merge this branch: bzr merge lp:~alan-griffiths/miral/WindowManagementPolicy-advise_raise
Reviewer Review Type Date Requested Status
Gerry Boland 2016-06-08 Approve on 2016-06-08
Review via email: mp+296799@code.launchpad.net

Commit Message

add WindowManagementPolicy::advise_raise()

To post a comment you must log in.
Gerry Boland (gerboland) wrote :

LGTM

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'include/miral/canonical_window_manager.h'
2--- include/miral/canonical_window_manager.h 2016-06-06 19:31:50 +0000
3+++ include/miral/canonical_window_manager.h 2016-06-08 14:36:02 +0000
4@@ -69,6 +69,7 @@
5
6 void advise_new_app(miral::ApplicationInfo& application) override;
7 void advise_delete_app(miral::ApplicationInfo const& application) override;
8+ void advise_raise(std::vector<miral::Window> const& windows) override;
9
10 void handle_app_info_updated(Rectangles const& displays) override;
11 void handle_displays_updated(Rectangles const& displays) override;
12
13=== modified file 'include/miral/window_management_policy.h'
14--- include/miral/window_management_policy.h 2016-06-06 19:31:50 +0000
15+++ include/miral/window_management_policy.h 2016-06-08 14:36:02 +0000
16@@ -58,7 +58,10 @@
17 virtual bool handle_pointer_event(MirPointerEvent const* event) = 0;
18 /** @} */
19
20-/** @name notification of WM events that the policy may need to track
21+/** @name notification of WM events that the policy may need to track.
22+ * With the exception of focus_lost/gained these are pre-notifications.
23+ * \note if the policy updates a Window object directly (as opposed to using tools)
24+ * no notification is generated.
25 * @{ */
26 virtual void advise_new_app(ApplicationInfo& application) = 0;
27 virtual void advise_delete_app(ApplicationInfo const& application) = 0;
28@@ -68,6 +71,9 @@
29 virtual void advise_state_change(WindowInfo const& window_info, MirSurfaceState state) = 0;
30 virtual void advise_resize(WindowInfo const& window_info, Size const& new_size) = 0;
31 virtual void advise_delete_window(WindowInfo const& window_info) = 0;
32+
33+ /// \note ordering isn't significant - the existing Z-order will be maintained
34+ virtual void advise_raise(std::vector<Window> const& windows) = 0;
35 /** @} */
36
37 /** @name Changes to the applications or displays
38
39=== modified file 'miral-kiosk/kiosk_window_manager.cpp'
40--- miral-kiosk/kiosk_window_manager.cpp 2016-06-07 21:24:27 +0000
41+++ miral-kiosk/kiosk_window_manager.cpp 2016-06-08 14:36:02 +0000
42@@ -208,3 +208,7 @@
43 void KioskWindowManagerPolicy::advise_delete_app(miral::ApplicationInfo const& /*application*/)
44 {
45 }
46+
47+void KioskWindowManagerPolicy::advise_raise(std::vector<miral::Window> const& /*windows*/)
48+{
49+}
50
51=== modified file 'miral-kiosk/kiosk_window_manager.h'
52--- miral-kiosk/kiosk_window_manager.h 2016-06-06 19:31:50 +0000
53+++ miral-kiosk/kiosk_window_manager.h 2016-06-08 14:36:02 +0000
54@@ -60,6 +60,7 @@
55 void advise_focus_gained(miral::WindowInfo const& info) override;
56 void advise_state_change(miral::WindowInfo const& window_info, MirSurfaceState state) override;
57 void advise_resize(miral::WindowInfo const& window_info, Size const& new_size) override;
58+ void advise_raise(std::vector<miral::Window> const& windows) override;
59
60 void advise_new_app(miral::ApplicationInfo& application) override;
61 void advise_delete_app(miral::ApplicationInfo const& application) override;
62
63=== modified file 'miral-shell/miral-run.sh'
64--- miral-shell/miral-run.sh 2016-04-12 22:56:10 +0000
65+++ miral-shell/miral-run.sh 2016-06-08 14:36:02 +0000
66@@ -2,4 +2,4 @@
67 if [ "$1" = "gnome-terminal" ]
68 then extras='--app-id com.canonical.miral.Terminal'
69 fi
70-GDK_BACKEND=mir QT_QPA_PLATFORM=ubuntumirclient SDL_VIDEODRIVER=mir $* $extras&
71+GDK_BACKEND=mir QT_QPA_PLATFORM=ubuntumirclient SDL_VIDEODRIVER=mir $* ${extras}&
72
73=== modified file 'miral-shell/tiling_window_manager.cpp'
74--- miral-shell/tiling_window_manager.cpp 2016-06-07 19:28:31 +0000
75+++ miral-shell/tiling_window_manager.cpp 2016-06-08 14:36:02 +0000
76@@ -569,3 +569,7 @@
77 void TilingWindowManagerPolicy::advise_delete_app(miral::ApplicationInfo const& /*application*/)
78 {
79 }
80+
81+void TilingWindowManagerPolicy::advise_raise(std::vector<miral::Window> const& /*windows*/)
82+{
83+}
84
85=== modified file 'miral-shell/tiling_window_manager.h'
86--- miral-shell/tiling_window_manager.h 2016-06-06 22:03:20 +0000
87+++ miral-shell/tiling_window_manager.h 2016-06-08 14:36:02 +0000
88@@ -61,6 +61,7 @@
89 void advise_focus_gained(miral::WindowInfo const& info) override;
90 void advise_state_change(miral::WindowInfo const& window_info, MirSurfaceState state) override;
91 void advise_resize(miral::WindowInfo const& window_info, Size const& new_size) override;
92+ void advise_raise(std::vector<miral::Window> const& windows) override;
93
94 void advise_new_app(miral::ApplicationInfo& application) override;
95 void advise_delete_app(miral::ApplicationInfo const& application) override;
96
97=== modified file 'miral/basic_window_manager.cpp'
98--- miral/basic_window_manager.cpp 2016-06-07 16:26:40 +0000
99+++ miral/basic_window_manager.cpp 2016-06-08 14:36:02 +0000
100@@ -476,20 +476,23 @@
101
102 void miral::BasicWindowManager::raise_tree(Window const& root)
103 {
104- SurfaceSet windows;
105- std::function<void(std::weak_ptr<scene::Surface> const& surface)> const add_children =
106- [&,this](std::weak_ptr<scene::Surface> const& surface)
107+ std::vector<Window> windows;
108+
109+ std::function<void(WindowInfo const& info)> const add_children =
110+ [&,this](WindowInfo const& info)
111 {
112- auto const& info = info_for(surface);
113- windows.insert(begin(info.children()), end(info.children()));
114- for (auto const& child : info.children())
115- add_children(child);
116+ for (auto const& child : info.children())
117+ {
118+ windows.push_back(child);
119+ add_children(info_for(child));
120+ }
121 };
122
123- windows.insert(root);
124- add_children(root);
125+ windows.push_back(root);
126+ add_children(info_for(root));
127
128- focus_controller->raise(windows);
129+ policy->advise_raise(windows);
130+ focus_controller->raise({begin(windows), end(windows)});
131 }
132
133 void miral::BasicWindowManager::move_tree(miral::WindowInfo& root, mir::geometry::Displacement movement)
134
135=== modified file 'miral/canonical_window_manager.cpp'
136--- miral/canonical_window_manager.cpp 2016-06-06 19:31:50 +0000
137+++ miral/canonical_window_manager.cpp 2016-06-08 14:36:02 +0000
138@@ -401,3 +401,7 @@
139 void miral::CanonicalWindowManagerPolicy::advise_delete_app(ApplicationInfo const& /*application*/)
140 {
141 }
142+
143+void miral::CanonicalWindowManagerPolicy::advise_raise(std::vector<miral::Window> const& /*windows*/)
144+{
145+}

Subscribers

People subscribed via source and target branches