cmbox - fix focus handling to work again

alt+home opens the "command box" for terminology. this is an extended
control system where we can add lots of commands. it's been there for
a while. look at termcmd.c and termcmd_do() for current commands like:

f <- set font to normal size
fb <- set font to big size
f+ <- increase font size
f- <- decrease font size
/string <- search for "string" (not implemented yet but recognized)
g0 <- set geometry to 80x24
g1 <- set geometry to 80x40
g2 <- set geometry to 80x60
g3 <- set geometry to 80x80
g4 <- set geometry to 120x24
g5 <- set geometry to 120x40
g6 <- set geometry to 120x60
g7 <- set geometry to 120x80
g8 <- set geometry to 120x120
b <- clear backgorund
b/file/path.jpg <- set background to /file/path.jpg

you get the idea ... it's a command character (or set of chars)
followed by paramters, then hit enter to finish.
This commit is contained in:
Carsten Haitzler 2019-12-06 09:14:40 +00:00
parent bcb4e27bed
commit 374d1b3e29
1 changed files with 4 additions and 20 deletions

View File

@ -168,7 +168,6 @@ struct _Win
Ecore_Job *size_job;
Evas_Object *cmdbox;
Ecore_Timer *cmdbox_del_timer;
Ecore_Timer *cmdbox_focus_timer;
Ecore_Timer *hide_cursor_timer;
unsigned char focused : 1;
unsigned char cmdbox_up : 1;
@ -981,11 +980,6 @@ win_free(Win *wn)
ecore_timer_del(wn->cmdbox_del_timer);
wn->cmdbox_del_timer = NULL;
}
if (wn->cmdbox_focus_timer)
{
ecore_timer_del(wn->cmdbox_focus_timer);
wn->cmdbox_focus_timer = NULL;
}
if (wn->cmdbox)
{
evas_object_del(wn->cmdbox);
@ -1538,8 +1532,7 @@ _cb_win_key_down(void *data,
DBG("GROUP key down (%p) (ctrl:%d)",
wn, evas_key_modifier_is_set(ev->modifiers, "Control"));
if (wn->on_popover)
return;
if ((wn->on_popover) || (wn->cmdbox_up)) return;
ctrl = evas_key_modifier_is_set(ev->modifiers, "Control");
alt = evas_key_modifier_is_set(ev->modifiers, "Alt");
@ -5316,11 +5309,7 @@ _cb_cmd_activated(void *data,
free(cmd);
}
}
if (wn->cmdbox_focus_timer)
{
ecore_timer_del(wn->cmdbox_focus_timer);
wn->cmdbox_focus_timer = NULL;
}
elm_object_focus_set(wn->base, EINA_TRUE);
wn->cmdbox_up = EINA_FALSE;
if (wn->cmdbox_del_timer) ecore_timer_del(wn->cmdbox_del_timer);
wn->cmdbox_del_timer = ecore_timer_add(5.0, _cb_cmd_del, wn);
@ -5334,11 +5323,7 @@ _cb_cmd_aborted(void *data,
Win *wn = data;
elm_layout_signal_emit(wn->base, "cmdbox,hide", "terminology");
if (wn->cmdbox_focus_timer)
{
ecore_timer_del(wn->cmdbox_focus_timer);
wn->cmdbox_focus_timer = NULL;
}
elm_object_focus_set(wn->base, EINA_TRUE);
wn->cmdbox_up = EINA_FALSE;
if (wn->cmdbox_del_timer) ecore_timer_del(wn->cmdbox_del_timer);
wn->cmdbox_del_timer = ecore_timer_add(5.0, _cb_cmd_del, wn);
@ -5418,8 +5403,7 @@ _cb_cmdbox(void *data,
elm_layout_signal_emit(term->wn->base, "cmdbox,show", "terminology");
elm_entry_entry_set(term->wn->cmdbox, "");
evas_object_show(term->wn->cmdbox);
if (term->wn->cmdbox_focus_timer)
ecore_timer_del(term->wn->cmdbox_focus_timer);
elm_object_focus_set(term->wn->cmdbox, EINA_TRUE);
if (term->wn->cmdbox_del_timer)
{
ecore_timer_del(term->wn->cmdbox_del_timer);