I don't think the first menu item should be highlighted by default
unless MENU_NOMOUSE is set or the mouse is over the item (which may be
hard to work out so maybe better defaulting to -1 if ~MENU_NOMOUSE).
On Fri, May 10, 2019 at 11:05:41PM +0100, Thomas Adam wrote:
> 1. Expose server_client_clear_overlay() to enable menus to be
> manpulated outside of the client which has the menu open. If the client
> receives a command from a different client to display a new menu, tear
> the current one down and use the new one.
>
> 2. Start the menu selection at 0 so the first item is highlighted by
> default.
>
> I'm not precious about either change...
> ---
> cmd-display-menu.c | 2 +-
> menu.c | 2 +-
> server-client.c | 3 +--
> tmux.h | 1 +
> 4 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/cmd-display-menu.c b/cmd-display-menu.c
> index 27bf454d..582a59c4 100644
> --- a/cmd-display-menu.c
> +++ b/cmd-display-menu.c
> @@ -63,7 +63,7 @@ cmd_display_menu_exec(struct cmd *self, struct cmdq_item
> *item)
> if ((c = cmd_find_client(item, args_get(args, 'c'), 0)) == NULL)
> return (CMD_RETURN_ERROR);
> if (c->overlay_draw != NULL)
> - return (CMD_RETURN_NORMAL);
> + server_client_clear_overlay(c);
> at = status_at_line(c);
>
> string = args_get(args, 'M');
> diff --git a/menu.c b/menu.c
> index 0443d22f..9c0a93d6 100644
> --- a/menu.c
> +++ b/menu.c
> @@ -331,7 +331,7 @@ menu_display(struct menu *menu, int flags, struct
> cmdq_item *item, u_int px,
> md->py = py;
>
> md->menu = menu;
> - md->choice = -1;
> + md->choice = 0;
>
> md->cb = cb;
> md->data = data;
> diff --git a/server-client.c b/server-client.c
> index fdc40d8d..f131bfd0 100644
> --- a/server-client.c
> +++ b/server-client.c
> @@ -41,7 +41,6 @@ static void server_client_check_redraw(struct client *);
> static void server_client_set_title(struct client *);
> static void server_client_reset_state(struct client *);
> static int server_client_assume_paste(struct session *);
> -static void server_client_clear_overlay(struct client *);
>
> static void server_client_dispatch(struct imsg *, void *);
> static void server_client_dispatch_command(struct client *, struct imsg *);
> @@ -99,7 +98,7 @@ server_client_set_overlay(struct client *c, u_int delay,
> overlay_draw_cb drawcb,
> }
>
> /* Clear overlay mode on client. */
> -static void
> +void
> server_client_clear_overlay(struct client *c)
> {
> if (c->overlay_draw == NULL)
> diff --git a/tmux.h b/tmux.h
> index 794dd3d7..67e93631 100644
> --- a/tmux.h
> +++ b/tmux.h
> @@ -2049,6 +2049,7 @@ void server_add_accept(int);
> u_int server_client_how_many(void);
> void server_client_set_overlay(struct client *, u_int, overlay_draw_cb,
> overlay_key_cb, overlay_free_cb, void *);
> +void server_client_clear_overlay(struct client *);
> void server_client_set_key_table(struct client *, const char *);
> const char *server_client_get_key_table(struct client *);
> int server_client_check_nested(struct client *);
> --
> 2.20.1
>
> --
> You received this message because you are subscribed to the Google Groups
> "tmux-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send an email to [email protected].
> To view this discussion on the web, visit
> https://groups.google.com/d/msgid/tmux-users/20190510220541.7689-1-thomas%40xteddy.org.
> For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups
"tmux-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send an email to [email protected].
To view this discussion on the web, visit
https://groups.google.com/d/msgid/tmux-users/20190514191611.4wa4ikoszw6dhnn2%40yelena.
For more options, visit https://groups.google.com/d/optout.