[enhancement] Autopilot testing needs to know screen coordinates of widgets on screen
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| Autopilot |
Undecided
|
Unassigned | ||
| Mir |
Fix Released
|
High
|
Chris Halse Rogers | |
| mir (Ubuntu) |
High
|
Unassigned | ||
| qtmir (Ubuntu) |
High
|
Unassigned | ||
| qtubuntu (Ubuntu) |
Undecided
|
Unassigned |
Bug Description
On phablet devices, Autopilot needs to determine the absolute coordinates of any item on screen, in order to generate input events to interact with those items.
Most toolkits give AP the ability to calculate the coordinates of an item inside the surface, i.e. relative to the surface top-left corner, and then obtain the position of the window from the display server (X11 usually) to calculate the absolute position.
However Mir does not have an API to let its clients find the surface position relative to the screen. There is also a desire from the Mir team not to supply this information.
We need to discuss how to solve this problem in a way everyone is happy
Related branches
- PS Jenkins bot (community): Approve (continuous-integration) on 2014-10-27
- Alberto Aguirre (community): Approve on 2014-10-27
- Alan Griffiths: Approve on 2014-10-14
- Daniel van Vugt: Abstain on 2014-10-14
- Andreas Pokorny (community): Approve on 2014-09-24
- Alexandros Frantzis (community): Approve on 2014-09-19
- Kevin DuBois (community): Abstain on 2014-09-08
-
Diff: 1865 lines (+1026/-46)53 files modifiedclient-ABI-sha1sums (+1/-1)
debian/control (+46/-0)
debian/libmirclient-debug-extension-dev.install (+3/-0)
debian/libmirclient-debug-extension1.install (+1/-0)
debian/libmirclient-dev.install (+1/-1)
include/client/mir_toolkit/debug/surface.h (+20/-0)
include/platform/mir/options/configuration.h (+1/-0)
include/server/mir/default_server_configuration.h (+3/-0)
include/server/mir/scene/coordinate_translator.h (+66/-0)
platform-ABI-sha1sums (+1/-1)
server-ABI-sha1sums (+3/-2)
src/client/CMakeLists.txt (+52/-2)
src/client/mir_connection.cpp (+3/-1)
src/client/mir_connection.h (+1/-0)
src/client/mir_debug_api.cpp (+39/-0)
src/client/mir_surface.cpp (+63/-0)
src/client/mir_surface.h (+16/-1)
src/client/mir_surface_api.cpp (+2/-3)
src/client/mirclient-debug-extension.pc.in (+11/-0)
src/client/mirclient.pc.in (+5/-3)
src/client/symbols-debug.map (+5/-0)
src/common/protobuf/mir_protobuf.proto (+17/-0)
src/common/symbols.map (+54/-0)
src/include/server/mir/frontend/unsupported_feature_exception.h (+41/-0)
src/platform/options/default_configuration.cpp (+4/-1)
src/platform/symbols.map (+1/-0)
src/server/frontend/CMakeLists.txt (+1/-0)
src/server/frontend/default_configuration.cpp (+21/-8)
src/server/frontend/default_ipc_factory.cpp (+6/-3)
src/server/frontend/default_ipc_factory.h (+8/-1)
src/server/frontend/protobuf_message_processor.cpp (+37/-0)
src/server/frontend/session_mediator.cpp (+30/-2)
src/server/frontend/session_mediator.h (+16/-2)
src/server/frontend/unsupported_coordinate_translator.cpp (+32/-0)
src/server/frontend/unsupported_coordinate_translator.h (+37/-0)
src/server/scene/CMakeLists.txt (+1/-0)
src/server/scene/default_configuration.cpp (+11/-0)
src/server/scene/default_coordinate_translator.cpp (+32/-0)
src/server/scene/default_coordinate_translator.h (+37/-0)
src/server/symbols.map (+6/-0)
tests/acceptance-tests/CMakeLists.txt (+2/-0)
tests/acceptance-tests/test_client_library.cpp (+0/-1)
tests/acceptance-tests/test_client_surface_events.cpp (+1/-1)
tests/acceptance-tests/test_client_surfaces.cpp (+1/-1)
tests/acceptance-tests/test_custom_input_dispatcher.cpp (+2/-2)
tests/acceptance-tests/test_debug_api.cpp (+231/-0)
tests/include/mir_test_doubles/mock_coordinate_translator.h (+42/-0)
tests/include/mir_test_doubles/mock_surface.h (+2/-1)
tests/integration-tests/CMakeLists.txt (+1/-0)
tests/integration-tests/test_stale_frames.cpp (+1/-1)
tests/unit-tests/frontend/test_session_mediator.cpp (+5/-5)
tests/unit-tests/frontend/test_session_mediator_android.cpp (+1/-1)
tests/unit-tests/frontend/test_session_mediator_mesa.cpp (+2/-1)
- Unity8 CI Bot: Approve (continuous-integration) on 2016-09-22
- Daniel d'Andrada (community): Approve on 2016-09-22
- PS Jenkins bot: Pending (continuous-integration) requested 2016-09-22
- Nick Dedekind: Pending requested 2016-09-22
- Michael Terry: Pending requested 2016-09-22
-
Diff: 376 lines (+141/-19)11 files modifieddebian/control (+1/-0)
src/ubuntumirclient/debugextension.cpp (+55/-0)
src/ubuntumirclient/debugextension.h (+39/-0)
src/ubuntumirclient/integration.cpp (+15/-2)
src/ubuntumirclient/integration.h (+4/-1)
src/ubuntumirclient/logging.h (+1/-0)
src/ubuntumirclient/plugin.cpp (+5/-11)
src/ubuntumirclient/plugin.h (+2/-3)
src/ubuntumirclient/ubuntumirclient.pro (+2/-0)
src/ubuntumirclient/window.cpp (+13/-1)
src/ubuntumirclient/window.h (+4/-1)
- Daniel d'Andrada (community): Approve on 2016-11-16
- Unity8 CI Bot: Approve (continuous-integration) on 2016-11-16
-
Diff: 33 lines (+12/-0)2 files modifiedsrc/ubuntumirclient/window.cpp (+11/-0)
src/ubuntumirclient/window.h (+1/-0)
- Unity8 CI Bot: Needs Fixing (continuous-integration) on 2016-12-07
- Lukáš Tinkl (community): Approve on 2016-12-07
- Emanuele Antonio Faraone (community): Approve on 2016-12-05
- Michael Zanetti: Pending requested 2016-11-30
-
Diff: 11323 lines (+5093/-2297)127 files modifiedCMakeLists.txt (+14/-1)
data/com.canonical.Unity8.gschema.xml (+2/-2)
debian/changelog (+33/-0)
debian/control (+5/-3)
plugins/Greeter/Unity/Launcher/CMakeLists.txt (+1/-1)
plugins/Greeter/Unity/Launcher/launcheritem.cpp (+13/-0)
plugins/Greeter/Unity/Launcher/launcheritem.h (+3/-0)
plugins/LightDM/FullLightDM/CMakeLists.txt (+5/-1)
plugins/Unity/Indicators/CMakeLists.txt (+3/-0)
plugins/Unity/Launcher/CMakeLists.txt (+4/-1)
plugins/Unity/Launcher/appdrawermodel.cpp (+62/-0)
plugins/Unity/Launcher/appdrawermodel.h (+33/-0)
plugins/Unity/Launcher/launcheritem.cpp (+13/-0)
plugins/Unity/Launcher/launcheritem.h (+4/-0)
plugins/Unity/Launcher/launchermodel.cpp (+6/-37)
plugins/Unity/Launcher/launchermodel.h (+0/-14)
plugins/Unity/Launcher/plugin.cpp (+2/-1)
plugins/Unity/Launcher/ualwrapper.cpp (+73/-0)
plugins/Unity/Launcher/ualwrapper.h (+35/-0)
plugins/Utils/CMakeLists.txt (+4/-0)
plugins/Utils/ElapsedTimer.h (+1/-1)
plugins/Utils/Timer.cpp (+5/-2)
plugins/Utils/Timer.h (+5/-6)
plugins/Utils/appdrawerproxymodel.cpp (+189/-0)
plugins/Utils/appdrawerproxymodel.h (+87/-0)
plugins/Utils/globalfunctions.cpp (+5/-0)
plugins/Utils/globalfunctions.h (+2/-0)
plugins/Utils/plugin.cpp (+2/-0)
plugins/Utils/windowstatestorage.cpp (+23/-0)
plugins/Utils/windowstatestorage.h (+5/-0)
plugins/WindowManager/CMakeLists.txt (+3/-1)
plugins/WindowManager/TopLevelSurfaceList.cpp (+0/-481)
plugins/WindowManager/TopLevelSurfaceList.h (+0/-223)
plugins/WindowManager/TopLevelWindowModel.cpp (+668/-0)
plugins/WindowManager/TopLevelWindowModel.h (+260/-0)
plugins/WindowManager/Window.cpp (+237/-0)
plugins/WindowManager/Window.h (+161/-0)
plugins/WindowManager/WindowManagerPlugin.cpp (+5/-2)
po/unity8.pot (+80/-43)
qml/Components/InputMethod.qml (+5/-4)
qml/Components/KeyboardShortcutsOverlay.qml (+13/-0)
qml/Components/KeymapSwitcher.qml (+4/-1)
qml/Components/VirtualTouchPad.qml (+269/-1)
qml/Dash/Previews/PreviewAudioPlayback.qml (+1/-0)
qml/DisabledScreenNotice.qml (+6/-58)
qml/Greeter/Greeter.qml (+1/-5)
qml/Greeter/LoginList.qml (+1/-1)
qml/Greeter/WideView.qml (+7/-2)
qml/Launcher/BackgroundBlur.qml (+81/-0)
qml/Launcher/Drawer.qml (+306/-0)
qml/Launcher/DrawerGridView.qml (+47/-0)
qml/Launcher/DrawerListView.qml (+32/-0)
qml/Launcher/Launcher.qml (+182/-34)
qml/Launcher/MoreAppsHeader.qml (+46/-0)
qml/Panel/Indicators/MenuItemFactory.qml (+22/-1)
qml/Shell.qml (+25/-41)
qml/Stage/FakeMaximizeDelegate.qml (+7/-7)
qml/Stage/MoveHandler.qml (+3/-3)
qml/Stage/Spread/WindowedRightEdgeMaths.qml (+19/-4)
qml/Stage/Stage.qml (+196/-186)
qml/Stage/StageMaths.qml (+2/-7)
qml/Stage/StagedFullscreenPolicy.qml (+4/-4)
qml/Stage/TopLevelSurfaceRepeater.qml (+0/-67)
qml/Stage/WindowControlsOverlay.qml (+1/-1)
qml/Stage/WindowResizeArea.qml (+2/-70)
qml/Stage/WindowStateSaver.qml (+63/-0)
qml/Stage/WindowedFullscreenPolicy.qml (+1/-1)
qml/Tutorial/TutorialLeftLong.qml (+1/-1)
src/ShellApplication.cpp (+1/-0)
tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.cpp (+1/-1)
tests/mocks/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp (+23/-23)
tests/mocks/QtMultimedia/videooutput.h (+1/-1)
tests/mocks/Unity/Application/ApplicationInfo.cpp (+48/-24)
tests/mocks/Unity/Application/ApplicationInfo.h (+2/-2)
tests/mocks/Unity/Application/ApplicationManager.cpp (+92/-63)
tests/mocks/Unity/Application/ApplicationManager.h (+31/-4)
tests/mocks/Unity/Application/CMakeLists.txt (+1/-1)
tests/mocks/Unity/Application/MirSurface.cpp (+86/-99)
tests/mocks/Unity/Application/MirSurface.h (+29/-27)
tests/mocks/Unity/Application/MirSurfaceItem.cpp (+4/-4)
tests/mocks/Unity/Application/MirSurfaceItem.h (+1/-2)
tests/mocks/Unity/Application/MirSurfaceListModel.cpp (+12/-34)
tests/mocks/Unity/Application/MirSurfaceListModel.h (+2/-7)
tests/mocks/Unity/Application/SurfaceManager.cpp (+172/-26)
tests/mocks/Unity/Application/SurfaceManager.h (+28/-10)
tests/mocks/Unity/Application/plugin.cpp (+4/-34)
tests/mocks/Unity/Launcher/CMakeLists.txt (+5/-1)
tests/mocks/Unity/Launcher/MockAppDrawerModel.cpp (+75/-0)
tests/mocks/Unity/Launcher/MockAppDrawerModel.h (+32/-0)
tests/mocks/Unity/Launcher/MockLauncherItem.cpp (+13/-0)
tests/mocks/Unity/Launcher/MockLauncherItem.h (+6/-0)
tests/mocks/Unity/Launcher/MockLauncherModel.cpp (+3/-0)
tests/mocks/Unity/Launcher/plugin.cpp (+4/-0)
tests/mocks/Utils/CMakeLists.txt (+4/-0)
tests/mocks/Utils/plugin.cpp (+2/-0)
tests/mocks/Utils/windowstatestorage.cpp (+23/-0)
tests/mocks/Utils/windowstatestorage.h (+5/-0)
tests/plugins/Greeter/Unity/Launcher/CMakeLists.txt (+1/-1)
tests/plugins/Unity/Launcher/CMakeLists.txt (+2/-1)
tests/plugins/Unity/Launcher/launchermodeltest.cpp (+6/-0)
tests/plugins/Utils/WindowInputMonitorTest.cpp (+76/-9)
tests/qmltests/CMakeLists.txt (+1/-0)
tests/qmltests/Components/tst_VirtualTouchPad.qml (+55/-1)
tests/qmltests/Dash/Previews/tst_Preview.qml (+63/-0)
tests/qmltests/Dash/tst_Dash.qml (+4/-3)
tests/qmltests/Dash/tst_DashShell.qml (+0/-29)
tests/qmltests/Launcher/tst_Drawer.qml (+264/-0)
tests/qmltests/Launcher/tst_Launcher.qml (+4/-4)
tests/qmltests/Panel/Indicators/tst_MenuItemFactory.qml (+6/-1)
tests/qmltests/Panel/tst_ActiveCallHint.qml (+16/-2)
tests/qmltests/Panel/tst_Panel.qml (+8/-1)
tests/qmltests/Stage/ApplicationCheckBox.qml (+1/-1)
tests/qmltests/Stage/tst_ApplicationWindow.qml (+10/-10)
tests/qmltests/Stage/tst_DesktopStage.qml (+124/-80)
tests/qmltests/Stage/tst_PhoneStage.qml (+18/-38)
tests/qmltests/Stage/tst_SurfaceContainer.qml (+4/-0)
tests/qmltests/Stage/tst_TabletStage.qml (+16/-10)
tests/qmltests/Stage/tst_WindowResizeArea.qml (+1/-66)
tests/qmltests/Tutorial/tst_Tutorial.qml (+30/-8)
tests/qmltests/tst_DisabledScreenNotice.qml (+23/-9)
tests/qmltests/tst_OrientedShell.qml (+6/-13)
tests/qmltests/tst_Shell.qml (+143/-242)
tests/qmltests/tst_ShellWithPin.qml (+18/-75)
tests/uqmlscene/CMakeLists.txt (+5/-1)
tests/utils/modules/Unity/Test/StageTestCase.qml (+68/-0)
tests/utils/modules/Unity/Test/UnityTestCase.qml (+8/-9)
tests/utils/modules/Unity/Test/qmldir (+2/-1)
- Unity8 CI Bot (community): Approve (continuous-integration) on 2016-12-08
- Gerry Boland (community): Approve (code) on 2016-12-07
-
Diff: 12804 lines (+5168/-3676)139 files modifiedCMakeLists.txt (+7/-4)
debian/changelog (+6/-0)
debian/control (+8/-4)
debian/gles-patches/convert-to-gles.patch (+1/-1)
demos/paths.h.in (+19/-1)
demos/qml-demo-shell/CMakeLists.txt (+1/-0)
demos/qml-demo-shell/WindowModelDebugView.qml (+72/-0)
demos/qml-demo-shell/main.cpp (+10/-6)
demos/qml-demo-shell/pointerposition.cpp (+56/-0)
demos/qml-demo-shell/pointerposition.h (+49/-0)
demos/qml-demo-shell/windowModel.qml (+136/-0)
src/common/appnotifier.h (+39/-0)
src/common/debughelpers.cpp (+50/-16)
src/common/debughelpers.h (+2/-0)
src/common/mirqtconversion.h (+118/-0)
src/common/windowcontrollerinterface.h (+58/-0)
src/common/windowmodelnotifier.h (+95/-0)
src/modules/Unity/Application/CMakeLists.txt (+4/-3)
src/modules/Unity/Application/application.cpp (+7/-6)
src/modules/Unity/Application/application.h (+1/-8)
src/modules/Unity/Application/application_manager.cpp (+40/-75)
src/modules/Unity/Application/application_manager.h (+7/-9)
src/modules/Unity/Application/dbusfocusinfo.cpp (+12/-18)
src/modules/Unity/Application/dbusfocusinfo.h (+0/-1)
src/modules/Unity/Application/mirfocuscontroller.cpp (+0/-69)
src/modules/Unity/Application/mirfocuscontroller.h (+0/-49)
src/modules/Unity/Application/mirsurface.cpp (+476/-248)
src/modules/Unity/Application/mirsurface.h (+61/-51)
src/modules/Unity/Application/mirsurfaceinterface.h (+6/-12)
src/modules/Unity/Application/mirsurfaceitem.cpp (+4/-33)
src/modules/Unity/Application/mirsurfaceitem.h (+1/-5)
src/modules/Unity/Application/mirsurfacelistmodel.cpp (+10/-4)
src/modules/Unity/Application/mirsurfacemanager.cpp (+0/-188)
src/modules/Unity/Application/mirsurfacemanager.h (+0/-99)
src/modules/Unity/Application/plugin.cpp (+6/-18)
src/modules/Unity/Application/session.cpp (+42/-28)
src/modules/Unity/Application/session.h (+11/-12)
src/modules/Unity/Application/session_interface.h (+8/-6)
src/modules/Unity/Application/sessionmanager.cpp (+24/-37)
src/modules/Unity/Application/sessionmanager.h (+11/-8)
src/modules/Unity/Application/surfacemanager.cpp (+174/-0)
src/modules/Unity/Application/surfacemanager.h (+73/-0)
src/modules/Unity/Application/windowmodel.cpp (+235/-0)
src/modules/Unity/Application/windowmodel.h (+83/-0)
src/modules/Unity/Screens/CMakeLists.txt (+1/-1)
src/modules/Unity/Screens/plugin.cpp (+1/-1)
src/modules/Unity/Screens/qquickscreenwindow.cpp (+6/-6)
src/modules/Unity/Screens/qquickscreenwindow.h (+6/-6)
src/modules/Unity/Screens/screens.cpp (+1/-1)
src/modules/Unity/Screens/screens.h (+2/-29)
src/platforms/mirserver/CMakeLists.txt (+39/-25)
src/platforms/mirserver/creationhints.cpp (+0/-67)
src/platforms/mirserver/creationhints.h (+0/-56)
src/platforms/mirserver/cursor.cpp (+1/-1)
src/platforms/mirserver/customscreenconfiguration.h (+4/-2)
src/platforms/mirserver/mirdisplayconfigurationpolicy.cpp (+26/-1)
src/platforms/mirserver/mirdisplayconfigurationpolicy.h (+6/-14)
src/platforms/mirserver/miropenglcontext.cpp (+1/-0)
src/platforms/mirserver/mirserver.cpp (+0/-234)
src/platforms/mirserver/mirserver.h (+0/-71)
src/platforms/mirserver/mirserverhooks.cpp (+184/-0)
src/platforms/mirserver/mirserverhooks.h (+54/-0)
src/platforms/mirserver/mirserverintegration.cpp (+2/-2)
src/platforms/mirserver/mirserverstatuslistener.h (+1/-0)
src/platforms/mirserver/mirsingleton.cpp (+1/-0)
src/platforms/mirserver/mirwindowmanager.cpp (+0/-227)
src/platforms/mirserver/mirwindowmanager.h (+0/-49)
src/platforms/mirserver/nativeinterface.cpp (+1/-5)
src/platforms/mirserver/nativeinterface.h (+2/-2)
src/platforms/mirserver/offscreensurface.cpp (+0/-7)
src/platforms/mirserver/openglcontextfactory.cpp (+51/-0)
src/platforms/mirserver/openglcontextfactory.h (+47/-0)
src/platforms/mirserver/promptsession.h (+62/-0)
src/platforms/mirserver/promptsessionlistener.cpp (+2/-45)
src/platforms/mirserver/promptsessionlistener.h (+19/-21)
src/platforms/mirserver/promptsessionmanager.cpp (+47/-0)
src/platforms/mirserver/promptsessionmanager.h (+49/-0)
src/platforms/mirserver/qmirserver.cpp (+25/-52)
src/platforms/mirserver/qmirserver.h (+4/-7)
src/platforms/mirserver/qmirserver_p.cpp (+117/-25)
src/platforms/mirserver/qmirserver_p.h (+56/-10)
src/platforms/mirserver/qteventfeeder.cpp (+47/-23)
src/platforms/mirserver/qteventfeeder.h (+6/-12)
src/platforms/mirserver/screen.cpp (+26/-27)
src/platforms/mirserver/screen.h (+9/-14)
src/platforms/mirserver/screenscontroller.cpp (+1/-0)
src/platforms/mirserver/screenscontroller.h (+4/-1)
src/platforms/mirserver/screensmodel.cpp (+11/-5)
src/platforms/mirserver/screensmodel.h (+8/-4)
src/platforms/mirserver/screentypes.h (+60/-0)
src/platforms/mirserver/sessionauthorizer.cpp (+5/-10)
src/platforms/mirserver/sessionauthorizer.h (+7/-7)
src/platforms/mirserver/sessionlistener.cpp (+0/-96)
src/platforms/mirserver/sessionlistener.h (+0/-63)
src/platforms/mirserver/setqtcompositor.cpp (+55/-0)
src/platforms/mirserver/setqtcompositor.h (+47/-0)
src/platforms/mirserver/surfaceobserver.cpp (+36/-177)
src/platforms/mirserver/surfaceobserver.h (+9/-41)
src/platforms/mirserver/windowcontroller.cpp (+103/-0)
src/platforms/mirserver/windowcontroller.h (+54/-0)
src/platforms/mirserver/windowmanagementpolicy.cpp (+335/-0)
src/platforms/mirserver/windowmanagementpolicy.h (+96/-0)
tests/framework/CMakeLists.txt (+2/-0)
tests/framework/fake_displayconfigurationoutput.h (+1/-0)
tests/framework/fake_mirsurface.cpp (+31/-10)
tests/framework/fake_mirsurface.h (+18/-23)
tests/framework/fake_session.cpp (+7/-5)
tests/framework/fake_session.h (+5/-4)
tests/framework/fake_surface.h (+2/-0)
tests/framework/mock_mir_session.h (+9/-4)
tests/framework/mock_session.h (+5/-4)
tests/framework/mock_surface.h (+1/-0)
tests/framework/qtmir_test.cpp (+28/-4)
tests/framework/qtmir_test.h (+8/-5)
tests/framework/stub_scene_surface.h (+108/-0)
tests/framework/stub_windowcontroller.h (+44/-0)
tests/mirserver/CMakeLists.txt (+0/-1)
tests/mirserver/Screen/screen_test.cpp (+2/-2)
tests/mirserver/ScreensModel/screensmodel_test.cpp (+3/-1)
tests/mirserver/ScreensModel/stub_display.h (+10/-0)
tests/mirserver/ScreensModel/testable_screensmodel.h (+3/-2)
tests/mirserver/WindowManager/CMakeLists.txt (+0/-27)
tests/mirserver/WindowManager/stub_session.cpp (+0/-147)
tests/mirserver/WindowManager/stub_session.h (+0/-64)
tests/mirserver/WindowManager/stub_surface.cpp (+0/-212)
tests/mirserver/WindowManager/stub_surface.h (+0/-71)
tests/mirserver/WindowManager/window_manager.cpp (+0/-332)
tests/modules/Application/CMakeLists.txt (+1/-0)
tests/modules/Application/application_test.cpp (+10/-10)
tests/modules/ApplicationManager/CMakeLists.txt (+1/-0)
tests/modules/ApplicationManager/application_manager_test.cpp (+202/-192)
tests/modules/CMakeLists.txt (+1/-1)
tests/modules/SessionManager/CMakeLists.txt (+1/-0)
tests/modules/SessionManager/session_manager_test.cpp (+24/-16)
tests/modules/SessionManager/session_test.cpp (+14/-13)
tests/modules/WindowManager/CMakeLists.txt (+12/-6)
tests/modules/WindowManager/mirsurface_test.cpp (+67/-52)
tests/modules/WindowManager/mirsurfaceitem_test.cpp (+2/-2)
tests/modules/WindowManager/windowmodel_test.cpp (+786/-0)
tags: | added: enhancement |
summary: |
- AP needs absolute position of surface from Mir + [enhancement] Autopilot testing needs to know screen coordinates of + widgets on screen |
Launchpad Janitor (janitor) wrote : | #2 |
This bug was fixed in the package qtubuntu - 0.60+14.
---------------
qtubuntu (0.60+14.
[ Gerry Boland ]
* Workaround for bug 1346633 broke QGuiApplication
perform a different workaround. This workaround guesses the window
geometry relative to the screen (mainly setting y=panelHeight),
defining it using QPlatformWindow
to calculate mapToGlobal internally (LP: #1351024, #1346633)
-- Ubuntu daily release <email address hidden> Fri, 08 Aug 2014 14:10:40 +0000
Changed in qtubuntu (Ubuntu): | |
status: | New → Fix Released |
Changed in autopilot: | |
status: | New → Won't Fix |
kevin gunn (kgunn72) wrote : | #3 |
assigning to chris as he's actually tackling
Changed in mir: | |
importance: | Undecided → High |
assignee: | nobody → Chris Halse Rogers (raof) |
status: | New → Triaged |
Changed in mir: | |
milestone: | none → 0.7.0 |
status: | Triaged → In Progress |
Changed in mir: | |
milestone: | 0.7.0 → 0.8.0 |
Changed in mir: | |
milestone: | 0.8.0 → 0.9.0 |
Changed in mir: | |
milestone: | 0.9.0 → 0.8.0 |
Changed in qtmir: | |
status: | New → Confirmed |
importance: | Undecided → High |
Changed in mir: | |
milestone: | 0.8.0 → 0.9.0 |
PS Jenkins bot (ps-jenkins) wrote : | #4 |
Fix committed into lp:mir at revision None, scheduled for release in mir, milestone 0.9.0
Changed in mir: | |
status: | In Progress → Fix Committed |
Changed in mir (Ubuntu): | |
importance: | Undecided → High |
status: | New → Triaged |
Launchpad Janitor (janitor) wrote : | #5 |
This bug was fixed in the package mir - 0.9.0+15.
---------------
mir (0.9.0+
[ Alberto Aguirre ]
* New upstream release 0.9.0 (https:/
- Enhancements:
. New simpler API to configure and run a mir server.
. The event loop is now based on GLib's main loop library instead of
Boost.Asio.
. For Android platforms, the server now sends buffer fence fds to its
clients instead of potentially stalling the compositor thread waiting
for them to be signalled.
. New client debug interface to translate from surface to screen
- ABI summary: Servers need rebuilding, but clients do not;
. Mirclient ABI unchanged at 8
. Mircommon ABI bumped to 3
. Mirplatform ABI bumped to 4
. Mirserver ABI bumped to 27
- Bug fixes:
. Add a debug interface to translate from surface to screen coordinates
(LP: #1346633)
. Ensure a buffer requested by a surface is not delivered
after the surface is deleted (LP: #1376324)
. Overlays are not displayed onscreen in some positions (LP: #1378326)
. Server aborts when an exception is thrown from the main thread
(LP: #1378740)
. Fix race causing lost alarm notifications (LP: #1381925)
. Avoid lifecycle notifications racing with connection release
(LP: #1386646)
. Improve error checking and reporting for the client library
(LP: #1390388)
. Mir demo-shell now detects power button using proper Linux scan codes
(LP: #1303817)
. A prompt session with an invalid application pid should be an error
(LP: #1377968)
. When XDG_RUNTIME_DIR is defined but pointing to a non-existing
directory use "/tmp" (LP: #1304873)
. [regression] demo-shell bypass is not used on fullscreen surfaces if
there are windowed surfaces behind (LP: #1378706)
. Mir upgrade through dist-upgrade installs incorrect platform
(LP: #1378995)
. Fix Mir progressbar example using internal glibc defines(LP: #239272)
. Stop the default_
. [regression] Mir fails to build with MIR_ENABLE_
. [regression] mir_demo_
[ Ubuntu daily release ]
* New rebuild forced
-- Ubuntu daily release <email address hidden> Tue, 25 Nov 2014 17:49:24 +0000
Changed in mir (Ubuntu): | |
status: | Triaged → Fix Released |
Changed in mir: | |
status: | Fix Committed → Fix Released |
Olivier Tilloy (osomon) wrote : | #6 |
Note that this affects gallery-app autopilot tests. A recent change in the app makes it go fullscreen dynamically, thus invalidating the surface coordinates, and tests on krillin end up clicking off by 41px (the height of the top panel). See bug #1422418.
Gerry Boland (gerboland) wrote : | #7 |
Note we've landed a hack to guess absolute positioning of surfaces for the phone. But a proper solution requires more thorough approach:
1. via the mir-client-debug API, a client can ask for the surface's absolute position
2. the server, if it is in debug mode, can reply with this information.
This requires patching qtubuntu, qtmir & unity8.
Richard Huddie (rhuddie) wrote : | #8 |
A note to confirm this issue is affecting autopilot test automation on tablet devices, where the shell runs in landscape mode, but the display panel orientation is fixed portrait. When sending touch input co-ordinates relative to the shell orientation they must be transformed to the display orientation. But this requires knowledge of what the native display orientation is for the device being tested.
Florian Boucault (fboucault) wrote : | #9 |
More workaround to include the low chrome mode at: https:/
affects: | qtmir → qtmir (Ubuntu) |
A small addendum to the above:
autopilot-qt uses the Qt API to determine the coordinates of each widget in screen-space. Specifically, it uses QWidget: :mapToGlobal to do the translation.
To my mind, since that API exists, and mir is supposed to support the Qt framework, the call should continue to work.
Gerry and I discussed a few other options, including exposing a dbus interface from unity8 that does the translation, but nothing I could come up with would be as straight forward and as clean as having the existing Qt API "just work".
It's also worth remembering that, while the current problem is with autopilot-qt, this is a public part of the Qt API, so it's possible that other applications in the future will be similarly broken by this change.
Cheers,