raster pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=374d1b3e2929b896c0aa6993a6512329372cbd70

commit 374d1b3e2929b896c0aa6993a6512329372cbd70
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Fri Dec 6 09:14:40 2019 +0000

    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.
---
 src/bin/win.c | 24 ++++--------------------
 1 file changed, 4 insertions(+), 20 deletions(-)

diff --git a/src/bin/win.c b/src/bin/win.c
index d374fe6..f87d164 100644
--- a/src/bin/win.c
+++ b/src/bin/win.c
@@ -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);

-- 


Reply via email to