expo: Drop the render from expo_poll()
Within tests it is useful to be able to control rendering of the expo. Drop the automatic call to expo_render() within expo_poll() and adjust its callers to handle this instead. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -219,6 +219,10 @@ int cedit_run(struct expo *exp)
|
||||
do {
|
||||
struct expo_action act;
|
||||
|
||||
ret = expo_render(exp);
|
||||
if (ret)
|
||||
return log_msg_ret("cer", ret);
|
||||
|
||||
ret = expo_poll(exp, &act);
|
||||
if (!ret)
|
||||
cedit_do_action(exp, scn, vid_priv, &act);
|
||||
|
||||
@@ -320,10 +320,6 @@ int expo_poll(struct expo *exp, struct expo_action *act)
|
||||
{
|
||||
int ichar, key, ret;
|
||||
|
||||
ret = expo_render(exp);
|
||||
if (ret)
|
||||
return log_msg_ret("ere", ret);
|
||||
|
||||
ichar = cli_ch_process(&exp->cch, 0);
|
||||
if (!ichar) {
|
||||
int i;
|
||||
|
||||
@@ -116,6 +116,9 @@ __maybe_unused static int bootflow_handle_menu(struct bootstd_priv *std,
|
||||
return log_msg_ret("bhs", ret);
|
||||
|
||||
do {
|
||||
ret = expo_render(exp);
|
||||
if (ret)
|
||||
return log_msg_ret("bhr", ret);
|
||||
ret = bootflow_menu_poll(exp, &bflow);
|
||||
} while (ret == -EAGAIN);
|
||||
|
||||
|
||||
@@ -1006,10 +1006,13 @@ int expo_build(ofnode root, struct expo **expp);
|
||||
int cb_expo_build(struct expo **expp);
|
||||
|
||||
/**
|
||||
* expo_poll() - render an expo and see if the user takes an action
|
||||
* expo_poll() - see if the user takes an action
|
||||
*
|
||||
* Thsi calls expo_render() and then checks for a keypress. If there is one, it
|
||||
* is processed and the resulting action returned, if any
|
||||
* This checks for a keypress. If there is one, it is processed and the
|
||||
* resulting action returned, if any.
|
||||
*
|
||||
* Note that expo_render() should normally be called immediately before this
|
||||
* function so that the user can see the latest state.
|
||||
*
|
||||
* @exp: Expo to poll
|
||||
* @act: Returns action on success
|
||||
|
||||
Reference in New Issue
Block a user