summaryrefslogtreecommitdiff
path: root/sway/config.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/config.c')
-rw-r--r--sway/config.c25
1 files changed, 13 insertions, 12 deletions
diff --git a/sway/config.c b/sway/config.c
index 0203080c..616965c1 100644
--- a/sway/config.c
+++ b/sway/config.c
@@ -38,7 +38,7 @@ struct sway_config *config = NULL;
static struct xkb_state *keysym_translation_state_create(
struct xkb_rule_names rules) {
- struct xkb_context *context = xkb_context_new(XKB_CONTEXT_NO_FLAGS);
+ struct xkb_context *context = xkb_context_new(XKB_CONTEXT_NO_SECURE_GETENV);
struct xkb_keymap *xkb_keymap = xkb_keymap_new_from_names(
context,
&rules,
@@ -280,6 +280,7 @@ static void config_defaults(struct sway_config *config) {
config->title_align = ALIGN_LEFT;
config->tiling_drag = true;
config->tiling_drag_threshold = 9;
+ config->primary_selection = true;
config->smart_gaps = SMART_GAPS_OFF;
config->gaps_inner = 0;
@@ -511,6 +512,11 @@ bool load_main_config(const char *file, bool is_active, bool validating) {
old_config->xwayland ? "enabled" : "disabled");
config->xwayland = old_config->xwayland;
+ // primary_selection can only be enabled/disabled at launch
+ sway_log(SWAY_DEBUG, "primary_selection will remain %s",
+ old_config->primary_selection ? "enabled" : "disabled");
+ config->primary_selection = old_config->primary_selection;
+
if (!config->validating) {
if (old_config->swaybg_client != NULL) {
wl_client_destroy(old_config->swaybg_client);
@@ -960,23 +966,18 @@ void config_add_swaynag_warning(char *fmt, ...) {
if (config->reading && !config->validating) {
va_list args;
va_start(args, fmt);
- size_t length = vsnprintf(NULL, 0, fmt, args) + 1;
+ char *str = vformat_str(fmt, args);
va_end(args);
-
- char *temp = malloc(length + 1);
- if (!temp) {
- sway_log(SWAY_ERROR, "Failed to allocate buffer for warning.");
+ if (str == NULL) {
return;
}
- va_start(args, fmt);
- vsnprintf(temp, length, fmt, args);
- va_end(args);
-
swaynag_log(config->swaynag_command, &config->swaynag_config_errors,
"Warning on line %i (%s) '%s': %s",
config->current_config_line_number, config->current_config_path,
- config->current_config_line, temp);
+ config->current_config_line, str);
+
+ free(str);
}
}
@@ -1016,7 +1017,7 @@ char *do_var_replacement(char *str) {
int offset = find - str;
strncpy(newptr, str, offset);
newptr += offset;
- strncpy(newptr, var->value, vvlen);
+ memcpy(newptr, var->value, vvlen);
newptr += vvlen;
strcpy(newptr, find + vnlen);
free(str);