clients/editor: Toggle panel visibility on click

If the --click-to-show option is specified, clicking an input field will toggle
the input panel visiblity

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Tested-by: Silvan Jegen <s.jegen@gmail.com>
Reviewed-by: Jan Arne Petersen <janarne@gmail.com>
dev
Joshua Watt 7 years ago committed by Pekka Paalanen
parent dd61625d18
commit 8093fd5db2
  1. 13
      clients/editor.c

@ -49,6 +49,7 @@ struct text_entry {
struct window *window; struct window *window;
char *text; char *text;
int active; int active;
bool panel_visible;
uint32_t cursor; uint32_t cursor;
uint32_t anchor; uint32_t anchor;
struct { struct {
@ -499,8 +500,10 @@ text_input_leave(void *data,
text_entry_commit_and_reset(entry); text_entry_commit_and_reset(entry);
entry->active--; entry->active--;
if (!entry->active) if (!entry->active) {
zwp_text_input_v1_hide_input_panel(text_input); zwp_text_input_v1_hide_input_panel(text_input);
entry->panel_visible = false;
}
widget_schedule_redraw(entry->widget); widget_schedule_redraw(entry->widget);
} }
@ -699,6 +702,7 @@ text_entry_create(struct editor *editor, const char *text)
entry->window = editor->window; entry->window = editor->window;
entry->text = strdup(text); entry->text = strdup(text);
entry->active = 0; entry->active = 0;
entry->panel_visible = false;
entry->cursor = strlen(text); entry->cursor = strlen(text);
entry->anchor = entry->cursor; entry->anchor = entry->cursor;
entry->text_input = entry->text_input =
@ -787,7 +791,12 @@ text_entry_activate(struct text_entry *entry,
struct wl_surface *surface = window_get_wl_surface(entry->window); struct wl_surface *surface = window_get_wl_surface(entry->window);
if (entry->click_to_show && entry->active) { 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; return;
} }

Loading…
Cancel
Save