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
=== modified file 'miral-qt/src/common/windowcontrollerinterface.h'
--- miral-qt/src/common/windowcontrollerinterface.h 2016-08-03 15:29:44 +0000
+++ miral-qt/src/common/windowcontrollerinterface.h 2016-08-15 12:36:21 +0000
@@ -41,6 +41,8 @@
41 virtual void resize(const miral::Window &window, const QSize &size) = 0;41 virtual void resize(const miral::Window &window, const QSize &size) = 0;
42 virtual void move (const miral::Window &window, const QPoint &topLeft) = 0;42 virtual void move (const miral::Window &window, const QPoint &topLeft) = 0;
4343
44 virtual void requestClose(const miral::Window &window) = 0;
45
44 virtual void setState(const miral::Window &window, const MirSurfaceState state) = 0;46 virtual void setState(const miral::Window &window, const MirSurfaceState state) = 0;
4547
46 virtual void deliverKeyboardEvent(const miral::Window &window, const MirKeyboardEvent *event) = 0;48 virtual void deliverKeyboardEvent(const miral::Window &window, const MirKeyboardEvent *event) = 0;
4749
=== modified file 'miral-qt/src/modules/Unity/Application/mirsurface.cpp'
--- miral-qt/src/modules/Unity/Application/mirsurface.cpp 2016-08-12 12:04:13 +0000
+++ miral-qt/src/modules/Unity/Application/mirsurface.cpp 2016-08-15 12:36:21 +0000
@@ -1058,7 +1058,7 @@
10581058
1059 m_closingState = CloseOverdue;1059 m_closingState = CloseOverdue;
10601060
1061 //m_session->session()->destroy_surface(m_windowInfo); TODO use WindowManagerTools::ask_client_to_close(window)1061 m_controller->requestClose(m_windowInfo.window);
1062}1062}
10631063
1064void MirSurface::setCloseTimer(AbstractTimer *timer)1064void MirSurface::setCloseTimer(AbstractTimer *timer)
10651065
=== modified file 'miral-qt/src/platforms/mirserver/windowcontroller.cpp'
--- miral-qt/src/platforms/mirserver/windowcontroller.cpp 2016-08-03 15:29:44 +0000
+++ miral-qt/src/platforms/mirserver/windowcontroller.cpp 2016-08-15 12:36:21 +0000
@@ -48,6 +48,13 @@
48 }48 }
49}49}
5050
51void WindowController::requestClose(const miral::Window &window)
52{
53 if (m_policy) {
54 m_policy->ask_client_to_close(window);
55 }
56}
57
51void WindowController::setActiveFocus(const miral::Window &/*window*/, const bool /*activeFocus*/)58void WindowController::setActiveFocus(const miral::Window &/*window*/, const bool /*activeFocus*/)
52{59{
5360
5461
=== modified file 'miral-qt/src/platforms/mirserver/windowcontroller.h'
--- miral-qt/src/platforms/mirserver/windowcontroller.h 2016-08-03 15:29:44 +0000
+++ miral-qt/src/platforms/mirserver/windowcontroller.h 2016-08-15 12:36:21 +0000
@@ -33,6 +33,8 @@
33 void resize(const miral::Window &window, const QSize &size) override;33 void resize(const miral::Window &window, const QSize &size) override;
34 void move (const miral::Window &window, const QPoint &topLeft) override;34 void move (const miral::Window &window, const QPoint &topLeft) override;
3535
36 void requestClose(const miral::Window &window) override;
37
36 void setActiveFocus(const miral::Window &window, const bool activeFocus) override;38 void setActiveFocus(const miral::Window &window, const bool activeFocus) override;
37 void setState(const miral::Window &window, const MirSurfaceState state) override;39 void setState(const miral::Window &window, const MirSurfaceState state) override;
3840
3941
=== modified file 'miral-qt/src/platforms/mirserver/windowmanagementpolicy.cpp'
--- miral-qt/src/platforms/mirserver/windowmanagementpolicy.cpp 2016-08-12 12:09:39 +0000
+++ miral-qt/src/platforms/mirserver/windowmanagementpolicy.cpp 2016-08-15 12:36:21 +0000
@@ -207,3 +207,10 @@
207 modifications.top_left() = topLeft;207 modifications.top_left() = topLeft;
208 m_tools.modify_window(m_tools.info_for(window), modifications);208 m_tools.modify_window(m_tools.info_for(window), modifications);
209}209}
210
211void WindowManagementPolicy::ask_client_to_close(const miral::Window &window)
212{
213 m_tools.invoke_under_lock([&window, this]() {
214 m_tools.ask_client_to_close(window);
215 });
216}
210217
=== modified file 'miral-qt/src/platforms/mirserver/windowmanagementpolicy.h'
--- miral-qt/src/platforms/mirserver/windowmanagementpolicy.h 2016-08-12 12:09:39 +0000
+++ miral-qt/src/platforms/mirserver/windowmanagementpolicy.h 2016-08-15 12:36:21 +0000
@@ -77,6 +77,8 @@
77 void resize(const miral::Window &window, const Size size);77 void resize(const miral::Window &window, const Size size);
78 void move (const miral::Window &window, const Point topLeft);78 void move (const miral::Window &window, const Point topLeft);
7979
80 void ask_client_to_close(const miral::Window &window);
81
80Q_SIGNALS:82Q_SIGNALS:
8183
82private:84private:

Subscribers

People subscribed via source and target branches