lp:~andreas-pokorny/mir/input-registrar-observer
- Get this branch:
- bzr branch lp:~andreas-pokorny/mir/input-registrar-observer
Branch merges
- Alan Griffiths: Needs Fixing
- Robert Carr (community): Needs Information
- PS Jenkins bot (community): Approve (continuous-integration)
-
Diff: 1057 lines (+401/-124)29 files modifiedinclude/server/mir/input/input_dispatcher_configuration.h (+0/-1)
include/server/mir/scene/input_registrar.h (+7/-16)
include/server/mir/scene/input_registrar_observer.h (+60/-0)
include/test/mir_test/fake_event_hub_input_configuration.h (+6/-1)
include/test/mir_test_doubles/mock_input_registrar_observer.h (+3/-3)
include/test/mir_test_doubles/stub_input_registrar.h (+53/-0)
include/test/mir_test_doubles/stub_input_registrar_observer.h (+5/-5)
src/server/input/android/android_input_registrar.h (+2/-2)
src/server/input/android/input_dispatcher_configuration.cpp (+10/-13)
src/server/input/android/input_dispatcher_configuration.h (+9/-3)
src/server/input/default_configuration.cpp (+2/-10)
src/server/input/null_input_configuration.cpp (+0/-21)
src/server/scene/CMakeLists.txt (+1/-0)
src/server/scene/default_configuration.cpp (+12/-0)
src/server/scene/default_input_registrar.cpp (+63/-0)
src/server/scene/default_input_registrar.h (+56/-0)
src/server/scene/surface_stack.cpp (+2/-2)
src/server/scene/surface_stack.h (+3/-3)
tests/acceptance-tests/test_custom_input_dispatcher.cpp (+1/-5)
tests/acceptance-tests/test_server_shutdown.cpp (+2/-1)
tests/integration-tests/input/android/test_android_cursor_listener.cpp (+3/-1)
tests/integration-tests/input/android/test_android_input_manager.cpp (+11/-8)
tests/integration-tests/input/test_nested_input.cpp (+7/-18)
tests/integration-tests/session_management.cpp (+1/-0)
tests/mir_test_doubles/fake_event_hub_input_configuration.cpp (+8/-5)
tests/mir_test_framework/input_testing_server_options.cpp (+2/-1)
tests/unit-tests/scene/CMakeLists.txt (+1/-0)
tests/unit-tests/scene/test_default_input_registrar.cpp (+66/-0)
tests/unit-tests/scene/test_surface_stack.cpp (+5/-5)
Branch information
Recent revisions
- 1547. By Andreas Pokorny
-
* New upstream release 0.1.9 (https:/
/launchpad. net/mir/ +milestone/ 0.1.9)
- mirclient ABI unchanged, still at 7. Clients do not need rebuilding.
- mirserver ABI bumped to 19. Shells need rebuilding.
- More libmirserver class changes and reorganization, including;
. Moving things from shell:: to scene::
. Rewriting/refactoring surface factories.
- Added an id() to Renderable.
- Scene/Renderer interfaces:
. Scene is no longer responsible for its own iteration (no for_each
any more). Instead you should iterate over the list returned by
Scene::generate_ renderable_ list().
- Bugs fixed:
. TODO: fill in when proposing to Ubuntu
[ Daniel van Vugt ]
- mirserver ABI bumped to 18. Shells need rebuilding.
. graphics::Platform: :create_ display( ) has a new parameter allowing you
to customize the compositor's (E)GL configutation.
. Renderable::buffer( unsigned long frameno) is now:
Renderable::buffer( void const* user_id). See below.
. Renderable::should_ be_rendered_ in() is replaced by a more natural:
Renderable::visble( )
. input::Surface: :name() returns by value instead of reference now,
to ensure future thread safety.
- Switched EventHub device enumeration and hotplug to Udev. NOTE! This
means mir_test_* can't run natively on touch devices any more without
some setup first:
umockdev-run -- bin/mir_unit_tests
- Introduced "RenderableList" as the way to sample the Scene contents,
and started using that in the default compositor.
- Introduced physical length units and conversion (geometry::Length) in
preparation for arbitrary DPI rendering.
anti-aliased and high-DPI scalable.
- Multi-monitor frame sync has been redesigned to eliminate the need for
frame number tracking.
- Bugs (and enhancements) resolved:
. [enhancement] Please move input detection to libudev (LP: #1237784)
. [enhancement] Add a clamping resize mode to GLRenderer (LP: #1259887)
. [regression] Intermittent loss of multimonitor frame sync
(LP: #1290306)
. [enhancement] Make GL config options configurable (LP: #1290780)
. memcheck-test doesn't test anything when DISABLED_GTEST_DISCOVERY is
enabled (LP: #1291876)
. "Error opening DRM device" is always followed by "Unknown error -(some
negative number)" (LP: #1292384)
. Rendering/composition gets stopped early (LP: #1293896)
. Ubuntu Touch Settings and terminal apps are not rendering correctly on
rotate. (LP: #1294048)
. [regression] Apps are much slower to open (LP: #1294051)
. Settings app opens to a blank screen unless given enough time to render
or the app is touched (LP: #1294053)
. TestClientInput/DemoPrivatePro tobuf memory leak is causing regular CI
test failures (LP: #1295231)
. OSK touch events "fall through" and hit surface behind them
(LP: #1297878)
. [enhancement] add a test for composite of last client post
(LP: #1298596)
. [regression] Surfaces vanish as soon as their edges touch the edge of
screen (LP: #1301115)
* Cherry-picked from future release 0.1.9:
- Bug fix: mirplatformgraphics does not have boost program options in its
symbol table (LP: #1301040)
- Bug fix: unity8 crashed with SIGSEGV in glDeleteTextures() from
mir::scene: :GLPixelBuffer: :~GLPixelBuffer () from
mir::scene: :ThreadedSnapsh otStrategy: :~ThreadedSnaps hotStrategy( )
(LP: #1256360)
[ Ubuntu daily release ]
* New rebuild forced - 1546. By Andreas Pokorny
-
Allow multiple InputRegistrar
This change is necessary to split out the the input send parts from droidinput:
:InputDispatche r. InputRegistrar is copied to InputRegistrarO bserver, and two methods are added to InputRegistrar to register further InputRegistrarO bservers. The default implementation is no longer related to android integration code. - 1544. By Andreas Pokorny
-
Further tests showing the receival of focus changes and opened input channels
- 1543. By Andreas Pokorny
-
Make InputDispatcher replaceable
This change introduces a InputDispatcher interface that receives MirEvents.
The existing android-input based InputDispatcher is still the default dispatcher.
The configuration happens through the InputDispatcherConfiguration, which supplies
some additional related interfaces. - 1542. By Kevin DuBois
-
Address some long term problems with SurfaceStack's synchronization...
1) SurfaceStack was a BasicLockable, requiring a recursive_mutex. 'locking' the surface stack would just lock the ordering, it wouldn't lock the surfaces contained by the surface stack. Eliminate lock()/unlock() from the mc::Scene interface
2) The decisions the compositor made were based on data that was potentially stale when it came time to apply the decision. That is, every time the DefaultDisplayBuffer compositor went to access something from the BasicSurface, it could get a different value back, and had no way to lock the values (eg position) until the render was complete A few ideas were examined:
A) locking the surface ordering and the surfaces
This has the disadvantage that we essentially have one big lock around the central data structure of mir
B) locking the scene, and copying the surfaces
This has the disadvantage that the buffer acquisition (compositor_acquire) has to take place sooner in the render, leaving the client less time to sneak its buffers in to make the next frame posting
C) locking the scene, copying the surfaces, and lazy-copying the buffers.
This is the approach proposed, as it freezes the positioning info for the surfaces at generate_renderables_ list() time, but allows the clients to sneak in 'last minute buffers' and make an earlier frame if they return their buffer between "generate_ renderable_ list() and when the GLRenderer needs the buffer for texture reasons. The positioning info is just locked during the copy, so the rest of the system can proceed with what it has do (servicing move requests, rearranging the surfaces, etc) while the compositor is drawing. Approved by PS Jenkins bot, Alexandros Frantzis, Alan Griffiths, Alberto Aguirre.
- 1541. By Alberto Aguirre
-
Add capture rate limiting to mirscreencast (LP: #1294361, LP: #1280938). Fixes: https:/
/bugs.launchpad .net/bugs/ 1280938, https:/ /bugs.launchpad .net/bugs/ 1294361. Approved by PS Jenkins bot, Alan Griffiths, Alexandros Frantzis, Kevin DuBois.
- 1540. By Alan Griffiths
-
tests: Provide an integration test that focusing on a session raises its default surface. Fixes: https:/
/bugs.launchpad .net/bugs/ 1302689. Approved by Daniel van Vugt, PS Jenkins bot, Alexandros Frantzis, Chris Halse Rogers.
- 1539. By Daniel van Vugt
-
Fix improperly (non)overloaded mock function (LP: #1301135). Fixes: https:/
/bugs.launchpad .net/bugs/ 1301135. Approved by PS Jenkins bot, Kevin DuBois, Alexandros Frantzis.
Branch metadata
- Branch format:
- Branch format 7
- Repository format:
- Bazaar repository format 2a (needs bzr 1.16 or later)
- Stacked on:
- lp:mir/0.1