Never show EGLFS mouse cursor in Qt for Android platform plugin

The hack to use the environment variable for turning off the
mouse cursor is broken when running against Ministro, because
Ministro does not pass the environment on.

A better solution is to make it possible to turn the cursor
in the EGLFS plugin off in the hooks instead.

Task-number: QTBUG-30553
Change-Id: Id09b48c350d2c95de9bb174f7480cf0cd2bf8145
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
This commit is contained in:
Eskil Abrahamsen Blomfeldt 2013-05-15 12:54:46 +02:00 committed by The Qt Project
parent f66af39933
commit 2e6e295f61
4 changed files with 11 additions and 9 deletions

View File

@ -478,7 +478,6 @@ public class QtActivity extends Activity
}
loaderParams.putStringArrayList(NATIVE_LIBRARIES_KEY, libraryList);
loaderParams.putString(ENVIRONMENT_VARIABLES_KEY, ENVIRONMENT_VARIABLES
+ "QT_QPA_EGLFS_HIDECURSOR=1"
+ "\tQML2_IMPORT_PATH=" + localPrefix + "/qml"
+ "\tQML_IMPORT_PATH=" + localPrefix + "/imports"
+ "\tQT_PLUGIN_PATH=" + localPrefix + "/plugins");

View File

@ -62,6 +62,7 @@ public:
EGLNativeWindowType createNativeWindow(const QSize &size, const QSurfaceFormat &format);
void destroyNativeWindow(EGLNativeWindowType window);
bool hasCapability(QPlatformIntegration::Capability cap) const;
QEglFSCursor *createCursor(QEglFSScreen *screen) const;
};
void QEglFSAndroidHooks::platformInit()
@ -134,6 +135,12 @@ QSurfaceFormat QEglFSAndroidHooks::surfaceFormatFor(const QSurfaceFormat &inputF
return ret;
}
QEglFSCursor *QEglFSAndroidHooks::createCursor(QEglFSScreen *screen) const
{
Q_UNUSED(screen);
return 0;
}
static QEglFSAndroidHooks eglFSAndroidHooks;
QEglFSHooks *platformHooks = &eglFSAndroidHooks;

View File

@ -40,6 +40,7 @@
****************************************************************************/
#include "qeglfshooks.h"
#include "qeglfscursor.h"
#include <fcntl.h>
#include <unistd.h>
@ -249,8 +250,7 @@ bool QEglFSHooks::hasCapability(QPlatformIntegration::Capability cap) const
QEglFSCursor *QEglFSHooks::createCursor(QEglFSScreen *screen) const
{
Q_UNUSED(screen);
return 0;
return new QEglFSCursor(screen);
}
void QEglFSHooks::waitForVSync() const

View File

@ -55,12 +55,8 @@ QEglFSScreen::QEglFSScreen(EGLDisplay dpy)
#endif
static int hideCursor = qgetenv("QT_QPA_EGLFS_HIDECURSOR").toInt();
if (!hideCursor) {
if (QEglFSCursor *customCursor = QEglFSHooks::hooks()->createCursor(this))
m_cursor = customCursor;
else
m_cursor = new QEglFSCursor(this);
}
if (!hideCursor)
m_cursor = QEglFSHooks::hooks()->createCursor(this);
}
QEglFSScreen::~QEglFSScreen()