[PATCH weston 2/2] clients/editor: Toggle panel visibility on click

Joshua Watt jpewhacker at gmail.com
Mon Nov 27 16:32:01 UTC 2017


On Sat, 2017-06-24 at 16:03 -0500, Joshua Watt wrote:
> If the --click-to-show option is specified, clicking an input field
> will toggle
> the input panel visiblity
> 
> Signed-off-by: Joshua Watt <JPEWhacker at gmail.com>
> ---
>  clients/editor.c | 13 +++++++++++--
>  1 file changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/clients/editor.c b/clients/editor.c
> index b63c562..78d10d2 100644
> --- a/clients/editor.c
> +++ b/clients/editor.c
> @@ -49,6 +49,7 @@ struct text_entry {
>  	struct window *window;
>  	char *text;
>  	int active;
> +	bool panel_visible;
>  	uint32_t cursor;
>  	uint32_t anchor;
>  	struct {
> @@ -499,8 +500,10 @@ text_input_leave(void *data,
>  	text_entry_commit_and_reset(entry);
>  	entry->active--;
>  
> -	if (!entry->active)
> +	if (!entry->active) {
>  		zwp_text_input_v1_hide_input_panel(text_input);
> +		entry->panel_visible = false;
> +	}
>  
>  	widget_schedule_redraw(entry->widget);
>  }
> @@ -699,6 +702,7 @@ text_entry_create(struct editor *editor, const
> char *text)
>  	entry->window = editor->window;
>  	entry->text = strdup(text);
>  	entry->active = 0;
> +	entry->panel_visible = false;
>  	entry->cursor = strlen(text);
>  	entry->anchor = entry->cursor;
>  	entry->text_input =
> @@ -787,7 +791,12 @@ text_entry_activate(struct text_entry *entry,
>  	struct wl_surface *surface = window_get_wl_surface(entry-
> >window);
>  
>  	if (entry->click_to_show && entry->active) {
> -		zwp_text_input_v1_show_input_panel(entry-
> >text_input);
> +		entry->panel_visible = !entry->panel_visible;
> +
> +		if (entry->panel_visible)
> +			zwp_text_input_v1_show_input_panel(entry-
> >text_input);
> +		else
> +			zwp_text_input_v1_hide_input_panel(entry-
> >text_input);
>  
>  		return;
>  	}

Could someone please Ack and commit this (or give more feedback)?
Thanks


More information about the wayland-devel mailing list