@@ -44,12 +44,13 @@ ShellApplication::ShellApplication(int & argc, char ** argv, bool isMirServer)
4444 UnityCommandLineParser parser(*this);
4545
4646 if (!parser.deviceName().isEmpty()) {
47− m_qmlArgs.setDeviceName(parser.deviceName());
47+ m_deviceName = parser.deviceName();
4848 } else {
4949 char buffer[200];
5050 property_get("ro.product.device", buffer /* value */, "desktop" /* default_value*/);
51− m_qmlArgs.setDeviceName(QString(buffer));
51+ m_deviceName = QString(buffer);
5252 }
53+ m_qmlArgs.setDeviceName(m_deviceName);
5354
5455 m_qmlArgs.setMode(parser.mode());
5556
@@ -98,6 +99,7 @@ ShellApplication::ShellApplication(int & argc, char ** argv, bool isMirServer)
9899 // (eg cloned desktop, several desktops, etc)
99100 if (isMirServer && screens().count() == 2) {
100101 m_shellView->setScreen(screens().at(1));
102+ m_qmlArgs.setDeviceName("desktop");
101103
102104 m_secondaryWindow.reset(new SecondaryWindow(m_qmlEngine));
103105 m_secondaryWindow->setScreen(screens().at(0));
@@ -136,6 +138,7 @@ void ShellApplication::onScreenAdded(QScreen * /*screen*/)
136138 // (eg cloned desktop, several desktops, etc)
137139 if (screens().count() == 2) {
138140 m_shellView->setScreen(screens().at(1));
141+ m_qmlArgs.setDeviceName("desktop");
139142 // Changing the QScreen where a QWindow is drawn makes it also lose focus (besides having
140143 // its backing QPlatformWindow recreated). So lets refocus it.
141144 m_shellView->requestActivate();
@@ -159,6 +162,7 @@ void ShellApplication::onScreenAboutToBeRemoved(QScreen *screen)
159162 Q_ASSERT(!m_secondaryWindow.isNull());
160163 m_secondaryWindow.reset();
161164 m_shellView->setScreen(screens().first());
165+ m_qmlArgs.setDeviceName(m_deviceName);
162166 // Changing the QScreen where a QWindow is drawn makes it also lose focus (besides having
163167 // its backing QPlatformWindow recreated). So lets refocus it.
164168 m_shellView->requestActivate();