Merge lp:~robertcarr/mir/focus-tell-dont-ask into lp:~mir-team/mir/trunk
Status: | Superseded |
---|---|
Proposed branch: | lp:~robertcarr/mir/focus-tell-dont-ask |
Merge into: | lp:~mir-team/mir/trunk |
Diff against target: |
478 lines (+160/-105) 14 files modified
include/server/mir/frontend/communicator_report.h (+0/-1) include/server/mir/shell/application_session.h (+6/-0) include/server/mir/shell/default_focus_mechanism.h (+2/-2) include/server/mir/shell/session.h (+5/-0) include/test/mir_test_doubles/mock_shell_session.h (+3/-0) include/test/mir_test_doubles/stub_shell_session.h (+8/-0) src/server/frontend/protobuf_socket_communicator.cpp (+1/-1) src/server/frontend/socket_messenger.cpp (+13/-3) src/server/frontend/socket_messenger.h (+6/-1) src/server/shell/application_session.cpp (+38/-3) src/server/shell/default_focus_mechanism.cpp (+10/-18) tests/unit-tests/frontend/CMakeLists.txt (+1/-0) tests/unit-tests/frontend/test_socket_messenger.cpp (+37/-0) tests/unit-tests/shell/test_default_focus_mechanism.cpp (+30/-76) |
To merge this branch: | bzr merge lp:~robertcarr/mir/focus-tell-dont-ask |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Alan Griffiths | Pending | ||
Daniel van Vugt | Pending | ||
PS Jenkins bot | continuous-integration | Pending | |
Alexandros Frantzis | Pending | ||
Review via email: mp+186655@code.launchpad.net |
This proposal supersedes a proposal from 2013-09-06.
This proposal has been superseded by a proposal from 2013-09-23.
Description of the change
== Old Description ==
Fix the races around focus. Essentially these stem from that holding std::shared_
So this branch changes ApplicationSession to not destroy the surface explicitly and instead rely on ~msh::Surface, which means that you really can hold a safe pointer. I think this as a reasonable choice, as the shell might want to do similar things, i.e. continue to animate a surface after a session has closed it.
==
New approach relies on ApplicationSession to hold the last focused ptr...WIP
Unmerged revisions
- 1088. By Robert Carr
-
Fix error in relinquish focus
- 1087. By Robert Carr
-
Merge socket-
messenger- reporitng - 1086. By Robert Carr
-
Merge development-branch
- 1085. By Robert Carr
-
Typo
- 1084. By Robert Carr
-
application_
session: Introduce default_ surface_ locked to dedupe some code - 1083. By Robert Carr
-
Merge fix-1226139
- 1082. By Robert Carr
-
More cleanup
- 1081. By Robert Carr
-
Merge trunk
- 1080. By Robert Carr
-
Cleanup
- 1079. By Robert Carr
-
Mutex for surface
I was able to run the stress test with continuous cursor input for the full ten minute run. There is also good reason to believe this fixes: https:/ /bugs.launchpad .net/mir/ +bug/1220845
The exception in ~SessionMediator can be triggered if session_ manager- >close_ session throws (due to this focus race), causing SessionMediator ::disconnect to fail to reset it's session member-variable pointer. This exception is caught in frontend. However now in ~SessionMediator the pointer has not been reset so it closes the session again throwing an Invalid Session exception. causing the session to be closed again in ~