ajwillia-ms pushed a commit to branch master.

http://git.enlightenment.org/tools/edi.git/commit/?id=804d14cef36c0af453915d866b95b24c969f9c11

commit 804d14cef36c0af453915d866b95b24c969f9c11
Author: Andy Williams <a...@andywilliams.me>
Date:   Mon Jul 24 18:27:45 2017 +0100

    panels: Track focus of editors when we're changing panel
---
 src/bin/editor/edi_editor.c           | 13 +++++++++++++
 src/bin/mainview/edi_mainview_panel.c |  2 +-
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/bin/editor/edi_editor.c b/src/bin/editor/edi_editor.c
index 07452aa..d9fb404 100644
--- a/src/bin/editor/edi_editor.c
+++ b/src/bin/editor/edi_editor.c
@@ -962,6 +962,18 @@ _edi_clang_dispose(void *data, Ecore_Thread *thread 
EINA_UNUSED)
 #endif
 
 static void
+_focused_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info 
EINA_UNUSED)
+{
+   Edi_Mainview_Panel *panel;
+   Edi_Mainview_Item *item;
+
+   item = (Edi_Mainview_Item *)data;
+   panel = edi_mainview_panel_for_item_get(item);
+
+   edi_mainview_panel_focus(panel);
+}
+
+static void
 _unfocused_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info 
EINA_UNUSED)
 {
    Edi_Editor *editor;
@@ -1115,6 +1127,7 @@ edi_editor_add(Evas_Object *parent, Edi_Mainview_Item 
*item)
                                   _smart_cb_key_down, editor);
    evas_object_smart_callback_add(widget, "changed,user", _changed_cb, editor);
    evas_object_event_callback_add(widget, EVAS_CALLBACK_MOUSE_UP, 
_mouse_up_cb, editor);
+   evas_object_smart_callback_add(widget, "focused", _focused_cb, item);
    evas_object_smart_callback_add(widget, "unfocused", _unfocused_cb, editor);
 
    elm_code_parser_standard_add(code, ELM_CODE_PARSER_STANDARD_TODO);
diff --git a/src/bin/mainview/edi_mainview_panel.c 
b/src/bin/mainview/edi_mainview_panel.c
index e558d32..f97d2a5 100644
--- a/src/bin/mainview/edi_mainview_panel.c
+++ b/src/bin/mainview/edi_mainview_panel.c
@@ -245,6 +245,7 @@ edi_mainview_panel_item_select(Edi_Mainview_Panel *panel, 
Edi_Mainview_Item *ite
         _edi_project_config_save_no_notify();
      }
 
+   edi_mainview_panel_focus(panel);
    ecore_event_add(EDI_EVENT_TAB_CHANGED, NULL, NULL, NULL);
 }
 
@@ -255,7 +256,6 @@ _promote(void *data, Evas_Object *obj EINA_UNUSED,
    Edi_Mainview_Panel *panel;
 
    panel = edi_mainview_panel_for_item_get((Edi_Mainview_Item *)data);
-   edi_mainview_panel_focus(panel);
    edi_mainview_panel_item_select(panel, (Edi_Mainview_Item *)data);
 }
 

-- 


Reply via email to