Merge lp:~gerboland/miral/use-miral-close into lp:miral

Proposed by Gerry Boland
Status: Merged
Approved by: Alan Griffiths
Approved revision: 273
Merged at revision: 274
Proposed branch: lp:~gerboland/miral/use-miral-close
Merge into: lp:miral
Diff against target: 84 lines (+21/-1)
6 files modified
miral-qt/src/common/windowcontrollerinterface.h (+2/-0)
miral-qt/src/modules/Unity/Application/mirsurface.cpp (+1/-1)
miral-qt/src/platforms/mirserver/windowcontroller.cpp (+7/-0)
miral-qt/src/platforms/mirserver/windowcontroller.h (+2/-0)
miral-qt/src/platforms/mirserver/windowmanagementpolicy.cpp (+7/-0)
miral-qt/src/platforms/mirserver/windowmanagementpolicy.h (+2/-0)
To merge this branch: bzr merge lp:~gerboland/miral/use-miral-close
Reviewer Review Type Date Requested Status
Alan Griffiths Approve
Review via email: mp+302814@code.launchpad.net

Commit message

[miral-qt] restore the window request close feature

To post a comment you must log in.
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

+void WindowManagementPolicy::ask_client_to_close(const miral::Window &window)
+{
+ m_tools.ask_client_to_close(window);
+}

I assume this is running on a Qt thread?

So it needs to do m_tools.invoke_under_lock(...).

review: Needs Fixing
lp:~gerboland/miral/use-miral-close updated
273. By Gerry Boland

Invoke under lock

Revision history for this message
Gerry Boland (gerboland) wrote :

Done

Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

LGTM

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'miral-qt/src/common/windowcontrollerinterface.h'
2--- miral-qt/src/common/windowcontrollerinterface.h 2016-08-03 15:29:44 +0000
3+++ miral-qt/src/common/windowcontrollerinterface.h 2016-08-15 12:36:21 +0000
4@@ -41,6 +41,8 @@
5 virtual void resize(const miral::Window &window, const QSize &size) = 0;
6 virtual void move (const miral::Window &window, const QPoint &topLeft) = 0;
7
8+ virtual void requestClose(const miral::Window &window) = 0;
9+
10 virtual void setState(const miral::Window &window, const MirSurfaceState state) = 0;
11
12 virtual void deliverKeyboardEvent(const miral::Window &window, const MirKeyboardEvent *event) = 0;
13
14=== modified file 'miral-qt/src/modules/Unity/Application/mirsurface.cpp'
15--- miral-qt/src/modules/Unity/Application/mirsurface.cpp 2016-08-12 12:04:13 +0000
16+++ miral-qt/src/modules/Unity/Application/mirsurface.cpp 2016-08-15 12:36:21 +0000
17@@ -1058,7 +1058,7 @@
18
19 m_closingState = CloseOverdue;
20
21- //m_session->session()->destroy_surface(m_windowInfo); TODO use WindowManagerTools::ask_client_to_close(window)
22+ m_controller->requestClose(m_windowInfo.window);
23 }
24
25 void MirSurface::setCloseTimer(AbstractTimer *timer)
26
27=== modified file 'miral-qt/src/platforms/mirserver/windowcontroller.cpp'
28--- miral-qt/src/platforms/mirserver/windowcontroller.cpp 2016-08-03 15:29:44 +0000
29+++ miral-qt/src/platforms/mirserver/windowcontroller.cpp 2016-08-15 12:36:21 +0000
30@@ -48,6 +48,13 @@
31 }
32 }
33
34+void WindowController::requestClose(const miral::Window &window)
35+{
36+ if (m_policy) {
37+ m_policy->ask_client_to_close(window);
38+ }
39+}
40+
41 void WindowController::setActiveFocus(const miral::Window &/*window*/, const bool /*activeFocus*/)
42 {
43
44
45=== modified file 'miral-qt/src/platforms/mirserver/windowcontroller.h'
46--- miral-qt/src/platforms/mirserver/windowcontroller.h 2016-08-03 15:29:44 +0000
47+++ miral-qt/src/platforms/mirserver/windowcontroller.h 2016-08-15 12:36:21 +0000
48@@ -33,6 +33,8 @@
49 void resize(const miral::Window &window, const QSize &size) override;
50 void move (const miral::Window &window, const QPoint &topLeft) override;
51
52+ void requestClose(const miral::Window &window) override;
53+
54 void setActiveFocus(const miral::Window &window, const bool activeFocus) override;
55 void setState(const miral::Window &window, const MirSurfaceState state) override;
56
57
58=== modified file 'miral-qt/src/platforms/mirserver/windowmanagementpolicy.cpp'
59--- miral-qt/src/platforms/mirserver/windowmanagementpolicy.cpp 2016-08-12 12:09:39 +0000
60+++ miral-qt/src/platforms/mirserver/windowmanagementpolicy.cpp 2016-08-15 12:36:21 +0000
61@@ -207,3 +207,10 @@
62 modifications.top_left() = topLeft;
63 m_tools.modify_window(m_tools.info_for(window), modifications);
64 }
65+
66+void WindowManagementPolicy::ask_client_to_close(const miral::Window &window)
67+{
68+ m_tools.invoke_under_lock([&window, this]() {
69+ m_tools.ask_client_to_close(window);
70+ });
71+}
72
73=== modified file 'miral-qt/src/platforms/mirserver/windowmanagementpolicy.h'
74--- miral-qt/src/platforms/mirserver/windowmanagementpolicy.h 2016-08-12 12:09:39 +0000
75+++ miral-qt/src/platforms/mirserver/windowmanagementpolicy.h 2016-08-15 12:36:21 +0000
76@@ -77,6 +77,8 @@
77 void resize(const miral::Window &window, const Size size);
78 void move (const miral::Window &window, const Point topLeft);
79
80+ void ask_client_to_close(const miral::Window &window);
81+
82 Q_SIGNALS:
83
84 private:

Subscribers

People subscribed via source and target branches