5069b53d6c
Since xwayland can only be enabled/disabled at launch, the xwayland status should be retained on reload. Having `xwayland enabled|disabled` in the config, should not cause `config->xwayland` to be invalid on reload. This also returns `CMD_FAILURE` with a message that xwayland can only be enabled/disabled on launch when trying to set the invalid status on reload. This allows swaynag to notify the user that the change will not take effect until sway is restarted.
27 lines
710 B
C
27 lines
710 B
C
#include "sway/config.h"
|
|
#include "log.h"
|
|
#include "sway/commands.h"
|
|
#include "sway/server.h"
|
|
#include "util.h"
|
|
|
|
struct cmd_results *cmd_xwayland(int argc, char **argv) {
|
|
struct cmd_results *error = NULL;
|
|
if ((error = checkarg(argc, "xwayland", EXPECTED_EQUAL_TO, 1))) {
|
|
return error;
|
|
}
|
|
|
|
#ifdef HAVE_XWAYLAND
|
|
bool xwayland = parse_boolean(argv[0], true);
|
|
if (config->reloading && config->xwayland != xwayland) {
|
|
return cmd_results_new(CMD_FAILURE,
|
|
"xwayland can only be enabled/disabled at launch");
|
|
}
|
|
config->xwayland = xwayland;
|
|
#else
|
|
sway_log(SWAY_INFO, "Ignoring `xwayland` command, "
|
|
"sway hasn't been built with Xwayland support");
|
|
#endif
|
|
|
|
return cmd_results_new(CMD_SUCCESS, NULL);
|
|
}
|