ajwillia-ms pushed a commit to branch master.

http://git.enlightenment.org/apps/ecrire.git/commit/?id=7614d743557dd21be474ceda2aa7c405b94c34c1

commit 7614d743557dd21be474ceda2aa7c405b94c34c1
Author: Andy Williams <a...@andywilliams.me>
Date:   Sat Aug 12 17:37:53 2017 +0100

    Add a few more expected key bindings
---
 src/bin/main.c | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/src/bin/main.c b/src/bin/main.c
index 9c2a2e9..b538e5f 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -124,7 +124,7 @@ _cur_changed(void *data, Evas_Object *obj, void *event_info 
__UNUSED__)
    col = evas_textblock_cursor_pos_get(mcur) -
       evas_textblock_cursor_pos_get(cur) + 1;
    evas_textblock_cursor_free(cur);
-   
+
    snprintf(buf, sizeof(buf), _("Ln %d, Col %d"), line, col);
    elm_object_text_set(data, buf);
 }
@@ -592,6 +592,30 @@ _selection_notify(void *data, int type __UNUSED__, void 
*_event)
 #endif
 */
 
+static void
+_key_cb(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj 
__UNUSED__, void *event)
+{
+   Eina_Bool ctrl, alt, shift;
+   Evas_Event_Key_Down *ev = event;
+
+   ctrl = evas_key_modifier_is_set(ev->modifiers, "Control");
+   alt = evas_key_modifier_is_set(ev->modifiers, "Alt");
+   shift = evas_key_modifier_is_set(ev->modifiers, "Shift");
+   if ((alt) || (!ctrl) || (shift))
+     return;
+
+   if (!strcmp(ev->key, "a"))
+     _save_as(data, obj, event);
+   else if (!strcmp(ev->key, "f"))
+     _find(data, obj, event);
+   else if (!strcmp(ev->key, "g"))
+     _goto_line(data, obj, event);
+   else if (!strcmp(ev->key, "n"))
+     _new(data, obj, event);
+   else if (!strcmp(ev->key, "s"))
+     _save(data, obj, event);
+}
+
 int
 main(int argc, char *argv[])
 {
@@ -707,6 +731,7 @@ main(int argc, char *argv[])
    evas_object_smart_callback_add(main_ec_ent->entry, "redo,request", _redo, 
main_ec_ent);
    evas_object_smart_callback_add(main_ec_ent->entry, "selection,start", 
_sel_start, main_ec_ent);
    evas_object_smart_callback_add(main_ec_ent->entry, "selection,cleared", 
_sel_clear, main_ec_ent);
+   evas_object_event_callback_add(main_ec_ent->entry, EVAS_CALLBACK_KEY_DOWN, 
_key_cb, main_ec_ent);
 
    elm_toolbar_item_append(tbar, "document-new", _("New"), _new, main_ec_ent);
    elm_toolbar_item_append(tbar, "document-open", _("Open"), _open, 
main_ec_ent);

-- 


Reply via email to