Merge lp:~alan-griffiths/qtmir/WindowControllerInterface-isVisible into lp:~unity-team/qtmir/miral-qt-integration
| Status: | Superseded |
|---|---|
| Proposed branch: | lp:~alan-griffiths/qtmir/WindowControllerInterface-isVisible |
| Merge into: | lp:~unity-team/qtmir/miral-qt-integration |
| Diff against target: |
243 lines (+57/-24) 12 files modified
CMakeLists.txt (+0/-4) debian/changelog (+14/-3) src/common/windowcontrollerinterface.h (+2/-0) src/modules/Unity/Application/application_manager.cpp (+2/-3) src/modules/Unity/Application/application_manager.h (+1/-6) src/modules/Unity/Application/mirsurface.cpp (+18/-5) src/platforms/mirserver/windowcontroller.cpp (+5/-0) src/platforms/mirserver/windowcontroller.h (+2/-0) src/platforms/mirserver/windowmanagementpolicy.cpp (+5/-0) src/platforms/mirserver/windowmanagementpolicy.h (+1/-0) tests/framework/stub_windowcontroller.h (+1/-0) tests/modules/WindowManager/windowmodel_test.cpp (+6/-3) |
| To merge this branch: | bzr merge lp:~alan-griffiths/qtmir/WindowControllerInterface-isVisible |
| Related bugs: |
| Reviewer | Review Type | Date Requested | Status |
|---|---|---|---|
| Daniel d'Andrada (community) | 2016-11-07 | Needs Fixing on 2016-11-09 | |
|
Review via email:
|
|||
This proposal has been superseded by a proposal from 2017-01-05.
Commit Message
Implement WindowControlle
| Alan Griffiths (alan-griffiths) wrote : | # |
> I don't get why we need the try{}catch{} in MirSurface:
The m_surface member is an awkward hack that extends the life of a ms:Surface object beyond the time it is known to MirAL and Mir. (I hope, eventually, to make this unnecessary.)
This lifetime extension makes it difficult to detect a race between a surface closing (as far as the rest of the system is concerned) and MirSurface:
The only convenient point at which to detect this race is in miral::
One scenario I've found to reliably reproduce this problem is:
qml-demo-shell --startup gnome-terminal
and then close the terminal through the file menu
| Daniel d'Andrada (dandrader) wrote : | # |
This would leave the code in a inconsistent state. We update MirSurface::visible when state changes but MirSurface::visible itself is defined by an opaque function from an external controller. So no guarantees that controller:
If controller:
I think this change should be accompanied by a notification miral::
Which makes me think that, while the miral notification doesn't come up in the API, we either drop the "&& m_surface-
| Alan Griffiths (alan-griffiths) wrote : | # |
> This would leave the code in a inconsistent state. We update
> MirSurface::visible when state changes but MirSurface::visible itself is
> defined by an opaque function from an external controller. So no guarantees
> that controller:
> importantly, *only* when surface state changes.
This MP does not effect any of that.
> If controller:
> changes, this MirSurface::visible won't get update and will, therefore, be
> broken.
>
> I think this change should be accompanied by a notification
> miral::
>
> Which makes me think that, while the miral notification doesn't come up in the
> API, we either drop the "&& m_surface-
> track changes to it if possible (which I think it's not)
That would change the meaning of MirSurface::visible - I don't know enough of the purpose of this property to know if that's a good idea.
- 570. By Gerry Boland on 2016-11-23
-
Fix FTBFS due to new googletest framework release (1.8)
- needed to update the gmock-fixes.h to add Unwrap() support
- small signed/unsigned comparison fix flagged by GTestApproved by: Daniel d'Andrada
- 571. By Gerry Boland on 2016-11-23
-
Revert Lttng test-crash workaround from rev 557
Approved by: Daniel d'Andrada, Unity8 CI Bot
- 572. By Jonas G. Drange on 2016-11-23
-
relax auth of clients to allow USS to set base mir display config
Approved by: Gerry Boland
- 573. By Albert Astals Cid on 2016-11-23
-
Build with Qt 5.7 (LP: #1642608, #1642954)
Approved by: Gerry Boland, Unity8 CI Bot
- 574. By CI Train Bot Account on 2016-11-23
-
Releasing 0.5.0+17.
04.20161123. 3-0ubuntu1 - 575. By Brandon Schaefer on 2016-12-03
-
Mir 0.25 compat
- 576. By CI Train Bot Account on 2016-12-03
-
Releasing 0.5.0+17.
04.20161203- 0ubuntu1 - 577. By CI Train Bot Account on 2016-12-16
-
First release using MirAL
- 578. By Daniel d'Andrada on 2016-12-16
-
Get rid of the ApplicationMana
ger::Factory class It's useless
Approved by: Gerry Boland, Unity8 CI Bot
- 579. By Daniel d'Andrada on 2016-12-16
-
Enable tests in Xenial
This workaround was needed only for the glib version present in Vivid
Approved by: Gerry Boland, Unity8 CI Bot
- 580. By CI Train Bot Account on 2016-12-16
-
Releasing 0.5.1+17.
04.20161216- 0ubuntu1 - 581. By Łukasz Zemczak on 2016-12-22
-
No-change rebuild against latest miral.
- 582. By Alan Griffiths on 2017-01-05
-
Implement WindowControlle
rInterface: :isVisible( const miral::Window &window) - 583. By Alan Griffiths on 2017-01-05
-
Another null check
- 584. By Alan Griffiths on 2017-01-05
-
Nasty hack because of existing nasty hack
- 585. By Alan Griffiths on 2017-01-05
-
Put const in the Qt place
- 586. By Alan Griffiths on 2017-01-05
-
Don't use the standard library when Qt has an alternative
- 587. By Alan Griffiths on 2017-01-05
-
Use StubWindowModel
Controller in tests where nullptr won't do
Unmerged revisions
- 587. By Alan Griffiths on 2017-01-05
-
Use StubWindowModel
Controller in tests where nullptr won't do - 586. By Alan Griffiths on 2017-01-05
-
Don't use the standard library when Qt has an alternative
- 585. By Alan Griffiths on 2017-01-05
-
Put const in the Qt place
- 584. By Alan Griffiths on 2017-01-05
-
Nasty hack because of existing nasty hack
- 583. By Alan Griffiths on 2017-01-05
-
Another null check
- 582. By Alan Griffiths on 2017-01-05
-
Implement WindowControlle
rInterface: :isVisible( const miral::Window &window) - 581. By Łukasz Zemczak on 2016-12-22
-
No-change rebuild against latest miral.
- 580. By CI Train Bot Account on 2016-12-16
-
Releasing 0.5.1+17.
04.20161216- 0ubuntu1 - 579. By Daniel d'Andrada on 2016-12-16
-
Enable tests in Xenial
This workaround was needed only for the glib version present in Vivid
Approved by: Gerry Boland, Unity8 CI Bot
- 578. By Daniel d'Andrada on 2016-12-16
-
Get rid of the ApplicationMana
ger::Factory class It's useless
Approved by: Gerry Boland, Unity8 CI Bot

I don't get why we need the try{}catch{} in MirSurface: :updateVisible( )