Merge lp:~alan-griffiths/miral/advise-new-delete-application into lp:miral

Proposed by Alan Griffiths
Status: Merged
Approved by: Gerry Boland
Approved revision: 189
Merged at revision: 190
Proposed branch: lp:~alan-griffiths/miral/advise-new-delete-application
Merge into: lp:miral
Diff against target: 132 lines (+37/-4)
8 files modified
include/miral/canonical_window_manager.h (+3/-0)
include/miral/window_management_policy.h (+2/-0)
miral-kiosk/kiosk_window_manager.cpp (+8/-0)
miral-kiosk/kiosk_window_manager.h (+3/-0)
miral-shell/tiling_window_manager.cpp (+8/-3)
miral-shell/tiling_window_manager.h (+3/-0)
miral/basic_window_manager.cpp (+2/-1)
miral/canonical_window_manager.cpp (+8/-0)
To merge this branch: bzr merge lp:~alan-griffiths/miral/advise-new-delete-application
Reviewer Review Type Date Requested Status
Gerry Boland (community) Approve
Review via email: mp+296595@code.launchpad.net

Commit message

Add notifications for add/delete application

To post a comment you must log in.
Revision history for this message
Gerry Boland (gerboland) wrote :

Looks ok.

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 13:34:18 +0000
3+++ include/miral/canonical_window_manager.h 2016-06-06 19:32:12 +0000
4@@ -67,6 +67,9 @@
5 void advise_resize(WindowInfo const& window_info, Size const& new_size) override;
6 void advise_delete_window(WindowInfo const& window_info) override;
7
8+ void advise_new_app(miral::ApplicationInfo& application) override;
9+ void advise_delete_app(miral::ApplicationInfo const& application) override;
10+
11 void handle_app_info_updated(Rectangles const& displays) override;
12 void handle_displays_updated(Rectangles const& displays) override;
13
14
15=== modified file 'include/miral/window_management_policy.h'
16--- include/miral/window_management_policy.h 2016-06-03 09:49:22 +0000
17+++ include/miral/window_management_policy.h 2016-06-06 19:32:12 +0000
18@@ -60,6 +60,8 @@
19
20 /** @name notification of WM events that the policy may need to track
21 * @{ */
22+ virtual void advise_new_app(ApplicationInfo& application) = 0;
23+ virtual void advise_delete_app(ApplicationInfo const& application) = 0;
24 virtual void advise_new_window(WindowInfo& window_info) = 0;
25 virtual void advise_focus_lost(WindowInfo const& info) = 0;
26 virtual void advise_focus_gained(WindowInfo const& info) = 0;
27
28=== modified file 'miral-kiosk/kiosk_window_manager.cpp'
29--- miral-kiosk/kiosk_window_manager.cpp 2016-06-03 13:40:44 +0000
30+++ miral-kiosk/kiosk_window_manager.cpp 2016-06-06 19:32:12 +0000
31@@ -240,3 +240,11 @@
32 void KioskWindowManagerPolicy::advise_resize(WindowInfo const& /*window_info*/, Size const& /*new_size*/)
33 {
34 }
35+
36+void KioskWindowManagerPolicy::advise_new_app(miral::ApplicationInfo& /*application*/)
37+{
38+}
39+
40+void KioskWindowManagerPolicy::advise_delete_app(miral::ApplicationInfo const& /*application*/)
41+{
42+}
43
44=== modified file 'miral-kiosk/kiosk_window_manager.h'
45--- miral-kiosk/kiosk_window_manager.h 2016-06-03 13:25:17 +0000
46+++ miral-kiosk/kiosk_window_manager.h 2016-06-06 19:32:12 +0000
47@@ -61,6 +61,9 @@
48 void advise_state_change(miral::WindowInfo const& window_info, MirSurfaceState state) override;
49 void advise_resize(miral::WindowInfo const& window_info, Size const& new_size) override;
50
51+ void advise_new_app(miral::ApplicationInfo& application) override;
52+ void advise_delete_app(miral::ApplicationInfo const& application) override;
53+
54 private:
55 static const int modifier_mask =
56 mir_input_event_modifier_alt |
57
58=== modified file 'miral-shell/tiling_window_manager.cpp'
59--- miral-shell/tiling_window_manager.cpp 2016-06-03 14:12:00 +0000
60+++ miral-shell/tiling_window_manager.cpp 2016-06-06 19:32:12 +0000
61@@ -456,9 +456,6 @@
62
63 tools->for_each_application([&](ApplicationInfo& info)
64 {
65- if (!info.userdata())
66- info.userdata(std::make_shared<TilingWindowManagerPolicyData>());
67-
68 auto& tile = tile_for(info);
69
70 auto const x = (total_width * index) / applications;
71@@ -600,3 +597,11 @@
72 {
73 }
74
75+void TilingWindowManagerPolicy::advise_new_app(miral::ApplicationInfo& application)
76+{
77+ application.userdata(std::make_shared<TilingWindowManagerPolicyData>());
78+}
79+
80+void TilingWindowManagerPolicy::advise_delete_app(miral::ApplicationInfo const& /*application*/)
81+{
82+}
83
84=== modified file 'miral-shell/tiling_window_manager.h'
85--- miral-shell/tiling_window_manager.h 2016-06-03 15:26:45 +0000
86+++ miral-shell/tiling_window_manager.h 2016-06-06 19:32:12 +0000
87@@ -62,6 +62,9 @@
88 void advise_state_change(miral::WindowInfo const& window_info, MirSurfaceState state) override;
89 void advise_resize(miral::WindowInfo const& window_info, Size const& new_size) override;
90
91+ void advise_new_app(miral::ApplicationInfo& application) override;
92+ void advise_delete_app(miral::ApplicationInfo const& application) override;
93+
94 private:
95 static const int modifier_mask =
96 mir_input_event_modifier_alt |
97
98=== modified file 'miral/basic_window_manager.cpp'
99--- miral/basic_window_manager.cpp 2016-06-03 16:18:16 +0000
100+++ miral/basic_window_manager.cpp 2016-06-06 19:32:12 +0000
101@@ -70,13 +70,14 @@
102 void miral::BasicWindowManager::add_session(std::shared_ptr<scene::Session> const& session)
103 {
104 std::lock_guard<decltype(mutex)> lock(mutex);
105- app_info[session] = ApplicationInfo();
106+ policy->advise_new_app(app_info[session] = ApplicationInfo());
107 policy->handle_app_info_updated(displays);
108 }
109
110 void miral::BasicWindowManager::remove_session(std::shared_ptr<scene::Session> const& session)
111 {
112 std::lock_guard<decltype(mutex)> lock(mutex);
113+ policy->advise_delete_app(app_info[session]);
114 app_info.erase(session);
115 policy->handle_app_info_updated(displays);
116 }
117
118=== modified file 'miral/canonical_window_manager.cpp'
119--- miral/canonical_window_manager.cpp 2016-06-06 13:34:18 +0000
120+++ miral/canonical_window_manager.cpp 2016-06-06 19:32:12 +0000
121@@ -393,3 +393,11 @@
122 void miral::CanonicalWindowManagerPolicy::advise_resize(WindowInfo const& /*window_info*/, Size const& /*new_size*/)
123 {
124 }
125+
126+void miral::CanonicalWindowManagerPolicy::advise_new_app(ApplicationInfo& /*application*/)
127+{
128+}
129+
130+void miral::CanonicalWindowManagerPolicy::advise_delete_app(ApplicationInfo const& /*application*/)
131+{
132+}

Subscribers

People subscribed via source and target branches