mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-04-08 08:20:59 -04:00
url-mode: use ‘jump-label-letters’ as the alphabet for key sequences
Instead of hard coding the alphabet to “sadfjklewcmpgh”, use the letters from ‘jump-label-letters’. Closes #355
This commit is contained in:
parent
d29ec4fd18
commit
c7006661f5
3 changed files with 9 additions and 8 deletions
2
input.c
2
input.c
|
|
@ -281,7 +281,7 @@ execute_binding(struct seat *seat, struct terminal *term,
|
||||||
: URL_ACTION_LAUNCH;
|
: URL_ACTION_LAUNCH;
|
||||||
|
|
||||||
urls_collect(term, url_action, &term->urls);
|
urls_collect(term, url_action, &term->urls);
|
||||||
urls_assign_key_combos(&term->urls);
|
urls_assign_key_combos(term->conf, &term->urls);
|
||||||
urls_render(term);
|
urls_render(term);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
12
url-mode.c
12
url-mode.c
|
|
@ -353,11 +353,11 @@ wcscmp_qsort_wrapper(const void *_a, const void *_b)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
generate_key_combos(size_t count, wchar_t *combos[static count])
|
generate_key_combos(const struct config *conf,
|
||||||
|
size_t count, wchar_t *combos[static count])
|
||||||
{
|
{
|
||||||
/* vimium default */
|
const wchar_t *alphabet = conf->jump_label_letters;
|
||||||
static const wchar_t alphabet[] = L"sadfjklewcmpgh";
|
const size_t alphabet_len = wcslen(alphabet);
|
||||||
static const size_t alphabet_len = ALEN(alphabet) - 1;
|
|
||||||
|
|
||||||
size_t hints_count = 1;
|
size_t hints_count = 1;
|
||||||
wchar_t **hints = xmalloc(hints_count * sizeof(hints[0]));
|
wchar_t **hints = xmalloc(hints_count * sizeof(hints[0]));
|
||||||
|
|
@ -410,14 +410,14 @@ generate_key_combos(size_t count, wchar_t *combos[static count])
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
urls_assign_key_combos(url_list_t *urls)
|
urls_assign_key_combos(const struct config *conf, url_list_t *urls)
|
||||||
{
|
{
|
||||||
const size_t count = tll_length(*urls);
|
const size_t count = tll_length(*urls);
|
||||||
if (count == 0)
|
if (count == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
wchar_t *combos[count];
|
wchar_t *combos[count];
|
||||||
generate_key_combos(count, combos);
|
generate_key_combos(conf, count, combos);
|
||||||
|
|
||||||
size_t idx = 0;
|
size_t idx = 0;
|
||||||
tll_foreach(*urls, it)
|
tll_foreach(*urls, it)
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
#include <xkbcommon/xkbcommon.h>
|
#include <xkbcommon/xkbcommon.h>
|
||||||
#include <tllist.h>
|
#include <tllist.h>
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
#include "terminal.h"
|
#include "terminal.h"
|
||||||
|
|
||||||
static inline bool urls_mode_is_active(const struct terminal *term)
|
static inline bool urls_mode_is_active(const struct terminal *term)
|
||||||
|
|
@ -13,7 +14,7 @@ static inline bool urls_mode_is_active(const struct terminal *term)
|
||||||
|
|
||||||
void urls_collect(
|
void urls_collect(
|
||||||
const struct terminal *term, enum url_action action, url_list_t *urls);
|
const struct terminal *term, enum url_action action, url_list_t *urls);
|
||||||
void urls_assign_key_combos(url_list_t *urls);
|
void urls_assign_key_combos(const struct config *conf, url_list_t *urls);
|
||||||
|
|
||||||
void urls_render(struct terminal *term);
|
void urls_render(struct terminal *term);
|
||||||
void urls_reset(struct terminal *term);
|
void urls_reset(struct terminal *term);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue