@@ -44,12 +44,13 @@ ShellApplication::ShellApplication(int & argc, char ** argv, bool isMirServer)
44 UnityCommandLineParser parser(*this);
44 UnityCommandLineParser parser(*this);
46 if (!parser.deviceName().isEmpty()) {
46 if (!parser.deviceName().isEmpty()) {
47− m_qmlArgs.setDeviceName(parser.deviceName());
47+ m_deviceName = parser.deviceName();
49 char buffer[200];
49 char buffer[200];
50 property_get("ro.product.device", buffer /* value */, "desktop" /* default_value*/);
50 property_get("ro.product.device", buffer /* value */, "desktop" /* default_value*/);
51− m_qmlArgs.setDeviceName(QString(buffer));
51+ m_deviceName = QString(buffer);
53+ m_qmlArgs.setDeviceName(m_deviceName);
54 m_qmlArgs.setMode(parser.mode());
55 m_qmlArgs.setMode(parser.mode());
@@ -98,6 +99,7 @@ ShellApplication::ShellApplication(int & argc, char ** argv, bool isMirServer)
98 // (eg cloned desktop, several desktops, etc)
99 // (eg cloned desktop, several desktops, etc)
99 if (isMirServer && screens().count() == 2) {
100 if (isMirServer && screens().count() == 2) {
100 m_shellView->setScreen(screens().at(1));
101 m_shellView->setScreen(screens().at(1));
102+ m_qmlArgs.setDeviceName("desktop");
102 m_secondaryWindow.reset(new SecondaryWindow(m_qmlEngine));
104 m_secondaryWindow.reset(new SecondaryWindow(m_qmlEngine));
103 m_secondaryWindow->setScreen(screens().at(0));
105 m_secondaryWindow->setScreen(screens().at(0));
@@ -136,6 +138,7 @@ void ShellApplication::onScreenAdded(QScreen * /*screen*/)
136 // (eg cloned desktop, several desktops, etc)
138 // (eg cloned desktop, several desktops, etc)
137 if (screens().count() == 2) {
139 if (screens().count() == 2) {
138 m_shellView->setScreen(screens().at(1));
140 m_shellView->setScreen(screens().at(1));
141+ m_qmlArgs.setDeviceName("desktop");
139 // Changing the QScreen where a QWindow is drawn makes it also lose focus (besides having
142 // Changing the QScreen where a QWindow is drawn makes it also lose focus (besides having
140 // its backing QPlatformWindow recreated). So lets refocus it.
143 // its backing QPlatformWindow recreated). So lets refocus it.
141 m_shellView->requestActivate();
144 m_shellView->requestActivate();
@@ -159,6 +162,7 @@ void ShellApplication::onScreenAboutToBeRemoved(QScreen *screen)
159 Q_ASSERT(!m_secondaryWindow.isNull());
162 Q_ASSERT(!m_secondaryWindow.isNull());
160 m_secondaryWindow.reset();
163 m_secondaryWindow.reset();
161 m_shellView->setScreen(screens().first());
164 m_shellView->setScreen(screens().first());
165+ m_qmlArgs.setDeviceName(m_deviceName);
162 // Changing the QScreen where a QWindow is drawn makes it also lose focus (besides having
166 // Changing the QScreen where a QWindow is drawn makes it also lose focus (besides having
163 // its backing QPlatformWindow recreated). So lets refocus it.
167 // its backing QPlatformWindow recreated). So lets refocus it.
164 m_shellView->requestActivate();
168 m_shellView->requestActivate();