summaryrefslogtreecommitdiff
path: root/sway/config.c
diff options
context:
space:
mode:
authorReza Jelveh <[email protected]>2024-04-15 13:39:41 +0800
committerGitHub <[email protected]>2024-04-15 01:39:41 -0400
commitfb86ed6b0588dfdebfb66ce875bc63cfa0a897f6 (patch)
tree29857a1769107adc58696f08d379f608aa4e29a2 /sway/config.c
parenta5e79676c4bd22fc5902182acf0667907202a465 (diff)
feat: 1.9 merge (#277)
Co-authored-by: William McKinnon <[email protected]> Co-authored-by: Erik Reider <[email protected]>
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);