panels: Track focus of editors when we're changing panel

This commit is contained in:
Andy Williams 2017-07-24 18:27:45 +01:00
parent 5cc9033fb2
commit 804d14cef3
2 changed files with 14 additions and 1 deletions

View File

@ -961,6 +961,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)
{
@ -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);

View File

@ -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);
}