fi;;
esac
+ dnl Specific support for X11 will be built if these are available
+ AC_CHECK_HEADERS([xcb/xcb.h])
+ AC_CHECK_LIB([xcb], [xcb_send_event])
save_CPPFLAGS=$CPPFLAGS
CPPFLAGS="$save_CPPFLAGS $QT_CORE_INCLUDES"
AC_CHECK_HEADER(QtGui/qtgui-config.h,
[lyx_qt_config=QtGui/qtgui-config.h],
[lyx_qt_config=qconfig.h])
- AC_MSG_CHECKING([whether Qt uses the X Window system])
- if test x$USE_QT6 = xyes ; then
- dnl FIXME: Check whether defining QPA_XCB makes sense with Qt6
- AC_PREPROC_IFELSE([AC_LANG_SOURCE([
- [#include <$lyx_qt_config>]
- [#if !defined(QT_FEATURE_xcb) || QT_FEATURE_xcb < 0]
- [#error Fail]
- [#endif]])],
- [AC_MSG_RESULT(yes)
- AC_DEFINE(QPA_XCB, 1, [Define if Qt uses the X Window System])],
- [AC_MSG_RESULT(no)])
- else
- AC_EGREP_CPP(xcb,
- [#include <$lyx_qt_config>
- QT_QPA_DEFAULT_PLATFORM_NAME],
- [AC_MSG_RESULT(yes)
- AC_DEFINE(QPA_XCB, 1, [Define if Qt uses the X Window System])],
- [AC_MSG_RESULT(no)])
- fi
CPPFLAGS=$save_CPPFLAGS
QT_FIND_TOOL([QT_MOC], [moc])
#include <QThreadPool>
#include <QWidget>
-#if defined(QPA_XCB)
+#ifdef HAVE_XCB_XCB_H
#include <xcb/xcb.h>
#ifdef HAVE_QT5_X11_EXTRAS
#include <QtX11Extras/QX11Info>
// Install Qt native translator for GUI elements.
installTranslator(&d->qt_trans_);
-#ifdef QPA_XCB
- // Enable reception of XCB events.
- installNativeEventFilter(this);
+ if (platformName() == "xcb") {
+#if defined(HAVE_XCB_XCB_H) && defined(HAVE_LIBXCB)
+ // Enable reception of XCB events.
+ installNativeEventFilter(this);
+#else
+ LYXERR0("Warning: X11 support is incomplete in this LyX binary.");
#endif
+ }
// FIXME: quitOnLastWindowClosed is true by default. We should have a
// lyxrc setting for this in order to let the application stay resident.
this, SLOT(onApplicationStateChanged(Qt::ApplicationState)));
#endif
-#if defined(QPA_XCB)
- // doubleClickInterval() is 400 ms on X11 which is just too long.
- // On Windows and Mac OS X, the operating system's value is used.
- // On Microsoft Windows, calling this function sets the double
- // click interval for all applications. So we don't!
- QApplication::setDoubleClickInterval(300);
-#endif
+ if (platformName() == "xcb") {
+ // doubleClickInterval() is 400 ms on X11 which is just too long.
+ // On Windows and Mac OS X, the operating system's value is used.
+ // On Microsoft Windows, calling this function sets the double
+ // click interval for all applications. So we don't!
+ QApplication::setDoubleClickInterval(300);
+ }
connect(this, SIGNAL(lastWindowClosed()), this, SLOT(onLastWindowClosed()));
//
// X11 specific stuff goes here...
-#if defined(QPA_XCB)
+#if defined(HAVE_XCB_XCB_H) && defined(HAVE_LIBXCB)
bool GuiApplication::nativeEventFilter(const QByteArray & eventType,
void * message, QINTPTR *)
{
#include <QApplication>
#include <QList>
-#ifdef QPA_XCB
+#if defined(HAVE_XCB_XCB_H) && defined(HAVE_LIBXCB)
#include <QAbstractNativeEventFilter>
#endif
initialisation should be done before the instantiation of this class.
*/
class GuiApplication : public QApplication, public Application
-#ifdef QPA_XCB
+#if defined(HAVE_XCB_XCB_H) && defined(HAVE_LIBXCB)
, public QAbstractNativeEventFilter
#endif
{
//@{
bool notify(QObject * receiver, QEvent * event) override;
void commitData(QSessionManager & sm);
-#if defined(QPA_XCB)
+#if defined(HAVE_XCB_XCB_H) && defined(HAVE_LIBXCB)
#if (QT_VERSION < 0x060000)
#define QINTPTR long
#else