diff options
| author | allusive-dev <[email protected]> | 2023-10-13 16:55:39 +1100 |
|---|---|---|
| committer | allusive-dev <[email protected]> | 2023-10-13 16:55:39 +1100 |
| commit | 32d36d9d887401e6738d1a887f4c838011789887 (patch) | |
| tree | bc710c3e1291be65110e92563b84e16b8e758aa8 /src | |
| parent | Merge branch 'main' of github.com:allusive-dev/picom-allusive (diff) | |
| download | compfy-32d36d9d887401e6738d1a887f4c838011789887.tar.xz compfy-32d36d9d887401e6738d1a887f4c838011789887.zip | |
testing corner-rules again
Diffstat (limited to 'src')
| -rw-r--r-- | src/config.c | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/src/config.c b/src/config.c index d415757..1d58f00 100644 --- a/src/config.c +++ b/src/config.c @@ -439,6 +439,36 @@ bool parse_rule_opacity(c2_lptr_t **res, const char *src) { } /** + * Parse a list of corner rules. + */ +bool parse_rule_corners(c2_lptr_t **res, const char *src) { + // Find corner value + char *endptr = NULL; + long val = strtol(src, &endptr, 0); + if (!endptr || endptr == src) { + log_error("No corner-radius specified: %s", src); + return false; + } + if (val > 100 || val < 0) { + log_error("Opacity %ld invalid: %s", val, src); + return false; + } + + // Skip over spaces + while (*endptr && isspace((unsigned char)*endptr)) + ++endptr; + if (':' != *endptr) { + log_error("Corner terminator not found: %s", src); + return false; + } + ++endptr; + + // Parse pattern + // I hope 1-100 is acceptable for (void *) + return c2_parse(res, endptr, (void *)val); +} + +/** * Add a pattern to a condition linked list. */ bool condlst_add(c2_lptr_t **pcondlst, const char *pattern) { @@ -634,7 +664,8 @@ char *parse_config(options_t *opt, const char *config_file, bool *shadow_enable, .rounded_corners_blacklist = NULL, .animation_open_blacklist = NULL, - .animation_unmap_blacklist = NULL + .animation_unmap_blacklist = NULL, + .corner_rules = NULL }; // clang-format on |