From 8c5393ebb1f867796d817c3e218371860c2733cf Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Mon, 1 Feb 2021 18:13:28 -0500 Subject: Tweak things to center the window Add a onCompleted hook in Main.qml to set it's x and y coordinates to center the window, and rework instantiation of the qml in main.cpp so that the resulting x and y values can be queried and used in a call to set_window_props to actually position the window. Bug-AGL: SPEC-3784 Signed-off-by: Scott Murray Change-Id: I46e2dfac7c62c9afd379fd6bf7b7fa3277422cbc (cherry picked from commit b587bf9d453f29656c2a52bc486881c0e3cb67c6) --- app/main.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'app/main.cpp') diff --git a/app/main.cpp b/app/main.cpp index 3c8792c..3751862 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -24,6 +24,8 @@ #include #include #include +#include +#include #include #include @@ -291,7 +293,16 @@ int main(int argc, char *argv[]) QQmlContext *context = engine.rootContext(); context->setContextProperty("homescreen", aglShell); context->setContextProperty("GuiMetadata", new GuiMetadata(bindingAddress, context)); - engine.load(QUrl(QStringLiteral("qrc:/Main.qml"))); + QQmlComponent component(&engine, + QUrl(QStringLiteral("qrc:/Main.qml"))); + QObject *object = component.create(); + + // Update window position based on component (x, y) + int x = QQmlProperty::read(object, "x").toInt(); + int y = QQmlProperty::read(object, "y").toInt(); + aglShell->set_window_props(nullptr, my_app_id, + AGL_SHELL_DESKTOP_APP_ROLE_POPUP, + x, y, 0, 0, 0, 0); // Create app framework client to handle events when window is not visible AfbClient client(port, token.toStdString()); -- cgit 1.2.3-korg