diff options
author | Phil Jones <philj56@gmail.com> | 2022-10-05 14:35:12 +0100 |
---|---|---|
committer | Phil Jones <philj56@gmail.com> | 2022-10-05 14:35:12 +0100 |
commit | 4f13d9c88e8a00ccb9ba8d5380db2f93d3f67908 (patch) | |
tree | 91506378e4d30edad5178238267d9a3132dcf146 /src/entry_backend/harfbuzz.c | |
parent | 803b0d14b7ac8ea03105613fa25849d460073357 (diff) |
Add options to hide input for passwords etc.
Diffstat (limited to 'src/entry_backend/harfbuzz.c')
-rw-r--r-- | src/entry_backend/harfbuzz.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/entry_backend/harfbuzz.c b/src/entry_backend/harfbuzz.c index 2834d9d..c5fc07e 100644 --- a/src/entry_backend/harfbuzz.c +++ b/src/entry_backend/harfbuzz.c @@ -230,7 +230,14 @@ void entry_backend_harfbuzz_update(struct entry *entry) /* Render the entry text */ hb_buffer_clear_contents(buffer); setup_hb_buffer(buffer); - hb_buffer_add_utf8(buffer, entry->input_mb, -1, 0, -1); + if (entry->hide_input) { + size_t char_len = N_ELEM(entry->hidden_character_mb); + for (size_t i = 0; i < entry->input_length; i++) { + hb_buffer_add_utf8(buffer, entry->hidden_character_mb, char_len, 0, char_len); + } + } else { + hb_buffer_add_utf8(buffer, entry->input_mb, -1, 0, -1); + } hb_shape(entry->harfbuzz.hb_font, buffer, NULL, 0); extents = render_hb_buffer(cr, buffer); extents.x_advance = MAX(extents.x_advance, entry->input_width); |