summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
04b0f95)
We have a few instances where we check for a 'select' action (enter or
space key event), and some are inconsistent. Unify these with a
key_is_select() function.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
static void widgetset_add_field(struct nc_widgetset *set, FIELD *field);
static void widgetset_remove_field(struct nc_widgetset *set, FIELD *field);
static void widgetset_add_field(struct nc_widgetset *set, FIELD *field);
static void widgetset_remove_field(struct nc_widgetset *set, FIELD *field);
+static bool key_is_select(int key)
+{
+ return key == ' ' || key == '\r' || key == '\n' || key == KEY_ENTER;
+}
+
static bool process_key_nop(struct nc_widget *widget __attribute__((unused)),
FORM *form __attribute((unused)),
int key __attribute__((unused)))
static bool process_key_nop(struct nc_widget *widget __attribute__((unused)),
FORM *form __attribute((unused)),
int key __attribute__((unused)))
{
struct nc_widget_checkbox *checkbox = to_checkbox(widget);
{
struct nc_widget_checkbox *checkbox = to_checkbox(widget);
+ if (!key_is_select(key))
return false;
checkbox->checked = !checkbox->checked;
return false;
checkbox->checked = !checkbox->checked;
int i, new_idx;
FIELD *field;
int i, new_idx;
FIELD *field;
- switch (key) {
- case ' ':
- case KEY_ENTER:
- break;
- default:
+ if (!key_is_select(key))
field = current_field(form);
new_opt = NULL;
field = current_field(form);
new_opt = NULL;
if (!button->click)
return false;
if (!button->click)
return false;
- switch (key) {
- case ' ':
- case '\r':
- case '\n':
- button->click(button->arg);
- return true;
- }
+ if (!key_is_select(key))
+ return false;
+ button->click(button->arg);
+ return true;
}
static int button_destructor(void *ptr)
}
static int button_destructor(void *ptr)