merge 1.3 r843:844 into trunk
This commit is contained in:
parent
47e12f465b
commit
728e8bb035
|
@ -34,6 +34,10 @@ CArchAppUtilUnix::parseArg(const int& argc, const char* const* argv, int& i)
|
|||
app().argsBase().m_display = argv[++i];
|
||||
}
|
||||
|
||||
else if (app().isArg(i, argc, argv, NULL, "--disable-xinitthreads")) {
|
||||
app().argsBase().m_disableXInitThreads = true;
|
||||
}
|
||||
|
||||
else {
|
||||
// option not supported here
|
||||
return false;
|
||||
|
|
|
@ -80,7 +80,7 @@
|
|||
|
||||
CXWindowsScreen* CXWindowsScreen::s_screen = NULL;
|
||||
|
||||
CXWindowsScreen::CXWindowsScreen(const char* displayName, bool isPrimary, int mouseScrollDelta) :
|
||||
CXWindowsScreen::CXWindowsScreen(const char* displayName, bool isPrimary, bool disableXInitThreads, int mouseScrollDelta) :
|
||||
m_isPrimary(isPrimary),
|
||||
m_mouseScrollDelta(mouseScrollDelta),
|
||||
m_display(NULL),
|
||||
|
@ -109,13 +109,12 @@ CXWindowsScreen::CXWindowsScreen(const char* displayName, bool isPrimary, int mo
|
|||
if (mouseScrollDelta==0) m_mouseScrollDelta=120;
|
||||
s_screen = this;
|
||||
|
||||
// initializes Xlib support for concurrent threads.
|
||||
if (XInitThreads() == 0)
|
||||
{
|
||||
throw XArch("XInitThreads() returned zero");
|
||||
if (!disableXInitThreads) {
|
||||
// initializes Xlib support for concurrent threads.
|
||||
if (XInitThreads() == 0)
|
||||
throw XArch("XInitThreads() returned zero");
|
||||
}
|
||||
|
||||
|
||||
// set the X I/O error handler so we catch the display disconnecting
|
||||
XSetIOErrorHandler(&CXWindowsScreen::ioErrorHandler);
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ class CXWindowsScreenSaver;
|
|||
//! Implementation of IPlatformScreen for X11
|
||||
class CXWindowsScreen : public CPlatformScreen {
|
||||
public:
|
||||
CXWindowsScreen(const char* displayName, bool isPrimary, int mouseScrollDelta=0);
|
||||
CXWindowsScreen(const char* displayName, bool isPrimary, bool disableXInitThreads, int mouseScrollDelta=0);
|
||||
virtual ~CXWindowsScreen();
|
||||
|
||||
//! @name manipulators
|
||||
|
|
|
@ -58,6 +58,9 @@ m_pauseOnExit(false),
|
|||
#else
|
||||
m_daemon(true), // backward compatibility for unix (daemon by default)
|
||||
#endif
|
||||
#if WINAPI_XWINDOWS
|
||||
m_disableXInitThreads(false),
|
||||
#endif
|
||||
m_backend(false),
|
||||
m_restartable(true),
|
||||
m_noHooks(false),
|
||||
|
|
|
@ -49,6 +49,9 @@ public:
|
|||
bool m_relaunchMode;
|
||||
bool m_debugServiceWait;
|
||||
bool m_pauseOnExit;
|
||||
#endif
|
||||
#if WINAPI_XWINDOWS
|
||||
bool m_disableXInitThreads;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
|
|
@ -220,7 +220,9 @@ CClientApp::createScreen()
|
|||
#if WINAPI_MSWINDOWS
|
||||
return new CScreen(new CMSWindowsScreen(false, args().m_noHooks));
|
||||
#elif WINAPI_XWINDOWS
|
||||
return new CScreen(new CXWindowsScreen(args().m_display, false, args().m_yscroll));
|
||||
return new CScreen(new CXWindowsScreen(
|
||||
args().m_display, false, args().m_disableXInitThreads,
|
||||
args().m_yscroll));
|
||||
#elif WINAPI_CARBON
|
||||
return new CScreen(new COSXScreen(false));
|
||||
#endif
|
||||
|
|
|
@ -639,7 +639,8 @@ CServerApp::createScreen()
|
|||
#if WINAPI_MSWINDOWS
|
||||
return new CScreen(new CMSWindowsScreen(true, args().m_noHooks));
|
||||
#elif WINAPI_XWINDOWS
|
||||
return new CScreen(new CXWindowsScreen(args().m_display, true));
|
||||
return new CScreen(new CXWindowsScreen(
|
||||
args().m_display, true, args().m_disableXInitThreads));
|
||||
#elif WINAPI_CARBON
|
||||
return new CScreen(new COSXScreen(true));
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue