#endif
#endif
+#ifdef Q_OS_LINUX_TIZEN
+#include <aul/aul.h>
+#endif // Q_OS_LINUX_TIZEN
+
#include <QtCore/QFileInfo>
QT_BEGIN_NAMESPACE
QXcbIntegration *QXcbIntegration::m_instance = Q_NULLPTR;
+#ifdef Q_OS_LINUX_TIZEN
+static int aul_handler(aul_type type, bundle *, void *)
+{
+ switch (type) {
+ case AUL_START:
+ QWindowSystemInterface::handleApplicationStateChanged(Qt::ApplicationActive);
+ break;
+ case AUL_RESUME:
+ if (!QGuiApplication::topLevelWindows().isEmpty())
+ QGuiApplication::topLevelWindows().first()->requestActivate();
+ break;
+ case AUL_TERMINATE:
+ QCoreApplication::quit();
+ break;
+ }
+ return 0;
+}
+#endif // Q_OS_LINUX_TIZEN
+
QXcbIntegration::QXcbIntegration(const QStringList ¶meters, int &argc, char **argv)
: m_services(new QGenericUnixServices)
, m_instanceName(0)
m_instance = this;
qRegisterMetaType<QXcbWindow*>();
+
+#ifdef Q_OS_LINUX_TIZEN
+ aul_launch_init(aul_handler, 0);
+ aul_launch_argv_handler(argc, argv);
+#endif // Q_OS_LINUX_TIZEN
+
#ifdef XCB_USE_XLIB
XInitThreads();
#endif
case ForeignWindows: return true;
case SyncState: return true;
case RasterGLSurface: return true;
+#ifdef Q_OS_LINUX_TIZEN
+ case ApplicationState: return true;
+#endif
default: return QPlatformIntegration::hasCapability(cap);
}
}
|| event->type == atom(QXcbAtom::WM_CHANGE_STATE)) {
// Ignore _NET_WM_STATE, MANAGER which are relate to tray icons
// and other messages.
+#ifdef Q_OS_LINUX_TIZEN
+ } else if (event->type == atom(QXcbAtom::_X_ILLUME_DEACTIVATE_WINDOW)) {
+ QWindowSystemInterface::handleApplicationStateChanged(Qt::ApplicationHidden);
+#endif // Q_OS_LINUX_TIZEN
} else if (event->type == atom(QXcbAtom::_COMPIZ_DECOR_PENDING)
|| event->type == atom(QXcbAtom::_COMPIZ_DECOR_REQUEST)
|| event->type == atom(QXcbAtom::_COMPIZ_DECOR_DELETE_PIXMAP)) {