diff options
author | Calvin Lee <cyrus296@gmail.com> | 2017-02-21 12:49:22 -0700 |
---|---|---|
committer | Calvin Lee <cyrus296@gmail.com> | 2017-02-21 14:12:31 -0700 |
commit | 34e2c70abcbc9ba496ab32f1f742dd7bae0ce0fe (patch) | |
tree | 41068bbf6d412c8501a8040c577321798ff8991c /common/util.c | |
parent | Merge pull request #1075 from zandrmartin/floating-positioning (diff) | |
download | sway-34e2c70abcbc9ba496ab32f1f742dd7bae0ce0fe.tar.gz sway-34e2c70abcbc9ba496ab32f1f742dd7bae0ce0fe.tar.zst sway-34e2c70abcbc9ba496ab32f1f742dd7bae0ce0fe.zip |
Feature for #1078: Configurable swaylock colors
Colors are configured through the command line so that swaylock conforms
to the i3lock fork 'github.com/chrjguill/i3lock-color'. Differences from
it are that one letter options '-r' and '-s' are not implimentend because
'-s' is already used by '--scaling' in swaylock.
This commit also fixed whitespace in 'include/swaylock/swaylock.h' and
changed `parse_color` in 'common/util.h' so that it can accept colors
that do not start with a hash. This was done to keep compatability with
the i3lock fork.
Diffstat (limited to 'common/util.c')
-rw-r--r-- | common/util.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/common/util.c b/common/util.c index f2302676..73704afd 100644 --- a/common/util.c +++ b/common/util.c | |||
@@ -102,13 +102,17 @@ pid_t get_parent_pid(pid_t child) { | |||
102 | } | 102 | } |
103 | 103 | ||
104 | uint32_t parse_color(const char *color) { | 104 | uint32_t parse_color(const char *color) { |
105 | if (color[0] == '#') { | ||
106 | ++color; | ||
107 | } | ||
108 | |||
105 | int len = strlen(color); | 109 | int len = strlen(color); |
106 | if (color[0] != '#' || (len != 7 && len != 9)) { | 110 | if (len != 6 && len != 8) { |
107 | sway_log(L_DEBUG, "Invalid color %s, defaulting to color 0xFFFFFFFF", color); | 111 | sway_log(L_DEBUG, "Invalid color %s, defaulting to color 0xFFFFFFFF", color); |
108 | return 0xFFFFFFFF; | 112 | return 0xFFFFFFFF; |
109 | } | 113 | } |
110 | uint32_t res = (uint32_t)strtoul(color + 1, NULL, 16); | 114 | uint32_t res = (uint32_t)strtoul(color, NULL, 16); |
111 | if (strlen(color) == 7) { | 115 | if (strlen(color) == 6) { |
112 | res = (res << 8) | 0xFF; | 116 | res = (res << 8) | 0xFF; |
113 | } | 117 | } |
114 | return res; | 118 | return res; |