mirror of
https://github.com/debauchee/barrier.git
synced 2026-02-12 06:35:04 +08:00
merge 1.3 r843:844 into trunk
This commit is contained in:
@@ -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,12 +109,11 @@ 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
|
||||
|
||||
Reference in New Issue
Block a user