From b2f6c56e64b012426453f20f476866f03425ba36 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rafa=C3=ABl=20Carr=C3=A9?= Date: Sun, 9 Dec 2007 19:42:02 +0000 Subject: [PATCH] fix #1382 --- configure.ac | 7 +++++-- modules/gui/qt4/qt4.cpp | 17 +++++++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index 7cc7b4bac2..2c163deccb 100644 --- a/configure.ac +++ b/configure.ac @@ -5187,6 +5187,9 @@ AS_IF([test "${enable_qt4}" != "no" && [ VLC_ADD_PLUGINS([qt4]) ALIASES="${ALIASES} qvlc" enableqt4=true + if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "cygwin"; then + AC_CHECK_HEADERS([X11/Xlib.h],[],[AC_MSG_ERROR([You need X11 headers])]) + fi VLC_ADD_LIBS([qt4],[$QT4_LIBS]) VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/\\\\\\\"]) AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin) @@ -5194,9 +5197,9 @@ AS_IF([test "${enable_qt4}" != "no" && AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin) ], AS_IF([test "${enable_qt4}" = "yes"],[ - AC_MSG_ERROR(QT4 library not found) + AC_MSG_ERROR(QT4 library not found) ],[ - AC_MSG_WARN(QT4 library not found) + AC_MSG_WARN(QT4 library not found) ]) ) ]) diff --git a/modules/gui/qt4/qt4.cpp b/modules/gui/qt4/qt4.cpp index 686456bda3..9f2ca79571 100644 --- a/modules/gui/qt4/qt4.cpp +++ b/modules/gui/qt4/qt4.cpp @@ -32,6 +32,10 @@ #include "input_manager.hpp" #include "main_interface.hpp" +#ifdef HAVE_X11_XLIB_H +#include +#endif + #include "../../../share/vlc32x32.xpm" /***************************************************************************** @@ -176,13 +180,22 @@ static int Open( vlc_object_t *p_this ) { intf_thread_t *p_intf = (intf_thread_t *)p_this; p_intf->pf_run = Run; -#if defined HAVE_GETENV && defined Q_WS_X11 +#if defined HAVE_GETENV && defined Q_WS_X11 && defined HAVE_X11_XLIB_H char *psz_display = getenv( "DISPLAY" ); if( !psz_display || !*psz_display ) { - msg_Err(p_intf, "no X server"); + msg_Err( p_intf, "no X server" ); + return VLC_EGENERIC; + } + /* Thanks for libqt4 calling exit() in QApplication::QApplication() + * instead of returning an error, we have to check for DISPLAY validity */ + Display *p_display = XOpenDisplay( psz_display ); + if( !p_display ) + { + msg_Err( p_intf, "Could not connect to X server %s", psz_display ); return VLC_EGENERIC; } + XCloseDisplay( p_display ); #endif p_intf->p_sys = (intf_sys_t *)malloc( sizeof( intf_sys_t ) ); if( !p_intf->p_sys ) -- 2.39.2