barriers: add headless mode
This commit is contained in:
parent
12024b9a5d
commit
833904e3bf
|
@ -168,7 +168,10 @@ private:
|
||||||
" --enable-drag-drop enable file drag & drop.\n" \
|
" --enable-drag-drop enable file drag & drop.\n" \
|
||||||
" --enable-crypto enable the crypto (ssl) plugin.\n" \
|
" --enable-crypto enable the crypto (ssl) plugin.\n" \
|
||||||
" --profile-dir <path> use named profile directory instead.\n" \
|
" --profile-dir <path> use named profile directory instead.\n" \
|
||||||
" --drop-dir <path> use named drop target directory instead.\n"
|
" --drop-dir <path> use named drop target directory instead.\n" \
|
||||||
|
" --headless-mode when any client connected, if server screen is\n" \
|
||||||
|
" holding the input focus, server will actively\n" \
|
||||||
|
" switch input focus to the client.\n"
|
||||||
|
|
||||||
#define HELP_COMMON_INFO_2 \
|
#define HELP_COMMON_INFO_2 \
|
||||||
" -h, --help display this help and exit.\n" \
|
" -h, --help display this help and exit.\n" \
|
||||||
|
|
|
@ -269,6 +269,9 @@ ArgParser::parseGenericArgs(int argc, const char* const* argv, int& i)
|
||||||
else if (isArg(i, argc, argv, NULL, "--plugin-dir", 1)) {
|
else if (isArg(i, argc, argv, NULL, "--plugin-dir", 1)) {
|
||||||
argsBase().m_pluginDirectory = argv[++i];
|
argsBase().m_pluginDirectory = argv[++i];
|
||||||
}
|
}
|
||||||
|
else if (isArg(i, argc, argv, NULL, "--headless-mode")) {
|
||||||
|
argsBase().m_headlessMode = true;
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
// option not supported here
|
// option not supported here
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -44,7 +44,8 @@ m_shouldExit(false),
|
||||||
m_barrierAddress(),
|
m_barrierAddress(),
|
||||||
m_enableCrypto(false),
|
m_enableCrypto(false),
|
||||||
m_profileDirectory(""),
|
m_profileDirectory(""),
|
||||||
m_pluginDirectory("")
|
m_pluginDirectory(""),
|
||||||
|
m_headlessMode(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -52,4 +52,5 @@ public:
|
||||||
bool m_enableCrypto;
|
bool m_enableCrypto;
|
||||||
String m_profileDirectory;
|
String m_profileDirectory;
|
||||||
String m_pluginDirectory;
|
String m_pluginDirectory;
|
||||||
|
bool m_headlessMode;
|
||||||
};
|
};
|
||||||
|
|
|
@ -267,6 +267,18 @@ ServerApp::handleClientConnected(const Event&, void* vlistener)
|
||||||
if (client != NULL) {
|
if (client != NULL) {
|
||||||
m_server->adoptClient(client);
|
m_server->adoptClient(client);
|
||||||
updateStatus();
|
updateStatus();
|
||||||
|
if( args().m_headlessMode && m_server->isServerHoldFocus() ) {
|
||||||
|
std::string screen = args().m_config->getCanonicalName(client->getName());
|
||||||
|
if (screen.empty()) {
|
||||||
|
screen = client->getName();
|
||||||
|
}
|
||||||
|
if(screen.empty()) return;
|
||||||
|
// send event
|
||||||
|
Server::SwitchToScreenInfo* info =
|
||||||
|
Server::SwitchToScreenInfo::alloc(screen);
|
||||||
|
m_events->addEvent(Event(m_events->forServer().switchToScreen(),
|
||||||
|
args().m_config->getInputFilter(), info));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -179,6 +179,10 @@ public:
|
||||||
//! Return fake drag file list
|
//! Return fake drag file list
|
||||||
DragFileList getFakeDragFileList() { return m_fakeDragFileList; }
|
DragFileList getFakeDragFileList() { return m_fakeDragFileList; }
|
||||||
|
|
||||||
|
//! Return true if fucus in primary clinet
|
||||||
|
bool isServerHoldFocus() { return (m_active ==
|
||||||
|
(BaseClientProxy*) m_primaryClient); }
|
||||||
|
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
Loading…
Reference in New Issue