diff options
author | Phil Jones <philj56@gmail.com> | 2022-07-29 13:06:59 +0100 |
---|---|---|
committer | Phil Jones <philj56@gmail.com> | 2022-07-29 14:32:37 +0100 |
commit | 36296bb7005f35baa1b5e29e1d06d4c4a8356762 (patch) | |
tree | 53aeea9c6226879177fdfebbbc63e123144a1584 | |
parent | 82d4c237d1f501cd7b0b8afc53ed87fd3ccf0e18 (diff) |
Make a selection-padding of -1 be infinite.
-rw-r--r-- | doc/tofi.5.md | 3 | ||||
-rw-r--r-- | doc/tofi.5.scd | 3 | ||||
-rw-r--r-- | src/config.c | 2 | ||||
-rw-r--r-- | src/entry.h | 2 | ||||
-rw-r--r-- | src/entry_backend/harfbuzz.c | 5 | ||||
-rw-r--r-- | src/entry_backend/pango.c | 5 |
6 files changed, 14 insertions, 6 deletions
diff --git a/doc/tofi.5.md b/doc/tofi.5.md index 93db9c7..539b525 100644 --- a/doc/tofi.5.md +++ b/doc/tofi.5.md @@ -96,7 +96,8 @@ options. **selection-padding**=*px* -> Extra horizontal padding of the selection background. +> Extra horizontal padding of the selection background. If *px* = -1, +> the padding will fill the whole window width. > > Default: 0 diff --git a/doc/tofi.5.scd b/doc/tofi.5.scd index 53ea3b3..8341200 100644 --- a/doc/tofi.5.scd +++ b/doc/tofi.5.scd @@ -86,7 +86,8 @@ options. Default: #F92672 *selection-padding*=_px_ - Extra horizontal padding of the selection background. + Extra horizontal padding of the selection background. If _px_ = -1, + the padding will fill the whole window width. Default: 0 diff --git a/src/config.c b/src/config.c index b5e7d49..9b0fe91 100644 --- a/src/config.c +++ b/src/config.c @@ -264,7 +264,7 @@ bool parse_option(struct tofi *tofi, const char *filename, size_t lineno, const } else if (strcasecmp(option, "selection-color") == 0) { tofi->window.entry.selection_foreground_color = parse_color(filename, lineno, value, &err); } else if (strcasecmp(option, "selection-padding") == 0) { - tofi->window.entry.selection_background_padding = parse_uint32(filename, lineno, value, &err); + tofi->window.entry.selection_background_padding = parse_int32(filename, lineno, value, &err); } else if (strcasecmp(option, "selection-background") == 0) { tofi->window.entry.selection_background_color = parse_color(filename, lineno, value, &err); } else if (strcasecmp(option, "width") == 0) { diff --git a/src/entry.h b/src/entry.h index 690cb2f..5536e06 100644 --- a/src/entry.h +++ b/src/entry.h @@ -59,7 +59,7 @@ struct entry { uint32_t padding_bottom; uint32_t padding_left; uint32_t padding_right; - uint32_t selection_background_padding; + int32_t selection_background_padding; uint32_t input_width; uint32_t border_width; uint32_t outline_width; diff --git a/src/entry_backend/harfbuzz.c b/src/entry_backend/harfbuzz.c index db3be66..cba1fd8 100644 --- a/src/entry_backend/harfbuzz.c +++ b/src/entry_backend/harfbuzz.c @@ -257,7 +257,10 @@ void entry_backend_harfbuzz_update(struct entry *entry) cairo_save(cr); color = entry->selection_background_color; cairo_set_source_rgba(cr, color.r, color.g, color.b, color.a); - uint32_t pad = entry->selection_background_padding; + int32_t pad = entry->selection_background_padding; + if (pad < 0) { + pad = entry->clip_width; + } cairo_translate(cr, -pad, 0); cairo_rectangle(cr, 0, 0, width + pad * 2, font_extents.height); cairo_translate(cr, pad, 0); diff --git a/src/entry_backend/pango.c b/src/entry_backend/pango.c index bb0847a..73eeb49 100644 --- a/src/entry_backend/pango.c +++ b/src/entry_backend/pango.c @@ -109,7 +109,10 @@ void entry_backend_pango_update(struct entry *entry) cairo_save(cr); color = entry->selection_background_color; cairo_set_source_rgba(cr, color.r, color.g, color.b, color.a); - uint32_t pad = entry->selection_background_padding; + int32_t pad = entry->selection_background_padding; + if (pad < 0) { + pad = entry->clip_width; + } cairo_translate(cr, -pad, 0); cairo_rectangle(cr, 0, 0, (int)(width / PANGO_SCALE) + pad * 2, (int)(height / PANGO_SCALE)); cairo_translate(cr, pad, 0); |