Compare commits
No commits in common. "8529f24a464013f31253d8c3aa0886cbd47cf86b" and "9a996c8440f1470b7c1a686e4c345bfad4c0e997" have entirely different histories.
8529f24a46
...
9a996c8440
2
NEWS
2
NEWS
@ -4,8 +4,6 @@ Unreleased
|
|||||||
|
|
||||||
* Implemented mouse drags on the elapsed time gauge and the scrollbar
|
* Implemented mouse drags on the elapsed time gauge and the scrollbar
|
||||||
|
|
||||||
* Added Tab and S-Tab bindings to iterate tabs
|
|
||||||
|
|
||||||
* Added a "z" binding to center the view on the selected item
|
* Added a "z" binding to center the view on the selected item
|
||||||
|
|
||||||
* Added a "?" binding to describe items in various tabs
|
* Added a "?" binding to describe items in various tabs
|
||||||
|
49
nncmpp.c
49
nncmpp.c
@ -2948,8 +2948,6 @@ g_normal_defaults[] =
|
|||||||
{ "C-l", ACTION_REDRAW },
|
{ "C-l", ACTION_REDRAW },
|
||||||
{ "M-Tab", ACTION_TAB_LAST },
|
{ "M-Tab", ACTION_TAB_LAST },
|
||||||
{ "F1", ACTION_TAB_HELP },
|
{ "F1", ACTION_TAB_HELP },
|
||||||
{ "S-Tab", ACTION_TAB_PREVIOUS },
|
|
||||||
{ "Tab", ACTION_TAB_NEXT },
|
|
||||||
{ "C-Left", ACTION_TAB_PREVIOUS },
|
{ "C-Left", ACTION_TAB_PREVIOUS },
|
||||||
{ "C-Right", ACTION_TAB_NEXT },
|
{ "C-Right", ACTION_TAB_NEXT },
|
||||||
{ "C-PageUp", ACTION_TAB_PREVIOUS },
|
{ "C-PageUp", ACTION_TAB_PREVIOUS },
|
||||||
@ -3110,28 +3108,9 @@ app_init_bindings (const char *keymap,
|
|||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *
|
|
||||||
app_strfkey (const termo_key_t *key)
|
|
||||||
{
|
|
||||||
// For display purposes, this is highly desirable
|
|
||||||
int flags = termo_get_flags (g.tk);
|
|
||||||
termo_set_flags (g.tk, flags | TERMO_FLAG_SPACESYMBOL);
|
|
||||||
termo_key_t fixed = *key;
|
|
||||||
termo_canonicalise (g.tk, &fixed);
|
|
||||||
termo_set_flags (g.tk, flags);
|
|
||||||
|
|
||||||
char buf[16] = "";
|
|
||||||
termo_strfkey_utf8 (g.tk, buf, sizeof buf, &fixed, TERMO_FORMAT_ALTISMETA);
|
|
||||||
return xstrdup (buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
app_process_termo_event (termo_key_t *event)
|
app_process_termo_event (termo_key_t *event)
|
||||||
{
|
{
|
||||||
char *formatted = app_strfkey (event);
|
|
||||||
print_debug ("%s", formatted);
|
|
||||||
free (formatted);
|
|
||||||
|
|
||||||
bool handled = false;
|
bool handled = false;
|
||||||
if ((handled = event->type == TERMO_TYPE_FOCUS))
|
if ((handled = event->type == TERMO_TYPE_FOCUS))
|
||||||
{
|
{
|
||||||
@ -4183,6 +4162,21 @@ help_tab_on_action (enum action action)
|
|||||||
return app_process_action (a), true;
|
return app_process_action (a), true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
help_tab_strfkey (const termo_key_t *key, struct strv *out)
|
||||||
|
{
|
||||||
|
// For display purposes, this is highly desirable
|
||||||
|
int flags = termo_get_flags (g.tk);
|
||||||
|
termo_set_flags (g.tk, flags | TERMO_FLAG_SPACESYMBOL);
|
||||||
|
termo_key_t fixed = *key;
|
||||||
|
termo_canonicalise (g.tk, &fixed);
|
||||||
|
termo_set_flags (g.tk, flags);
|
||||||
|
|
||||||
|
char buf[16];
|
||||||
|
termo_strfkey_utf8 (g.tk, buf, sizeof buf, &fixed, TERMO_FORMAT_ALTISMETA);
|
||||||
|
strv_append (out, buf);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
help_tab_assign_action (enum action action)
|
help_tab_assign_action (enum action action)
|
||||||
{
|
{
|
||||||
@ -4204,7 +4198,7 @@ help_tab_group (struct binding *keys, size_t len, struct strv *out,
|
|||||||
struct strv ass = strv_make ();
|
struct strv ass = strv_make ();
|
||||||
for (size_t k = 0; k < len; k++)
|
for (size_t k = 0; k < len; k++)
|
||||||
if (keys[k].action == i)
|
if (keys[k].action == i)
|
||||||
strv_append_owned (&ass, app_strfkey (&keys[k].decoded));
|
help_tab_strfkey (&keys[k].decoded, &ass);
|
||||||
if (ass.len)
|
if (ass.len)
|
||||||
{
|
{
|
||||||
char *joined = strv_join (&ass, ", ");
|
char *joined = strv_join (&ass, ", ");
|
||||||
@ -5953,7 +5947,6 @@ x11_convert_keysym (KeySym keysym)
|
|||||||
{
|
{
|
||||||
case XK_BackSpace: return TERMO_SYM_BACKSPACE;
|
case XK_BackSpace: return TERMO_SYM_BACKSPACE;
|
||||||
case XK_Tab: return TERMO_SYM_TAB;
|
case XK_Tab: return TERMO_SYM_TAB;
|
||||||
case XK_ISO_Left_Tab: return TERMO_SYM_TAB;
|
|
||||||
case XK_Return: return TERMO_SYM_ENTER;
|
case XK_Return: return TERMO_SYM_ENTER;
|
||||||
case XK_Escape: return TERMO_SYM_ESCAPE;
|
case XK_Escape: return TERMO_SYM_ESCAPE;
|
||||||
|
|
||||||
@ -6064,14 +6057,8 @@ on_x11_keypress (XEvent *e)
|
|||||||
memcpy (k.multibyte, p, MIN (cp_len, sizeof k.multibyte - 1));
|
memcpy (k.multibyte, p, MIN (cp_len, sizeof k.multibyte - 1));
|
||||||
p += cp_len;
|
p += cp_len;
|
||||||
|
|
||||||
// This is all unfortunate, but probably in the right place.
|
// This is unfortunate, but probably in the right place.
|
||||||
if (!cp)
|
if (cp >= 32)
|
||||||
{
|
|
||||||
k.code.codepoint = ' ';
|
|
||||||
if (ev->state & ShiftMask)
|
|
||||||
k.modifiers |= TERMO_KEYMOD_SHIFT;
|
|
||||||
}
|
|
||||||
else if (cp >= 32)
|
|
||||||
k.code.codepoint = cp;
|
k.code.codepoint = cp;
|
||||||
else if (ev->state & ShiftMask)
|
else if (ev->state & ShiftMask)
|
||||||
k.code.codepoint = cp + 64;
|
k.code.codepoint = cp + 64;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user