forked from enlightenment/enventor
edc_navigator: deselect an selected item when user focuses on editing.
This commit is contained in:
parent
12cdcc0ee3
commit
0f6a9873ce
|
@ -94,6 +94,12 @@ void base_file_browser_toggle(Eina_Bool toggle)
|
|||
elm_object_signal_emit(bd->layout, "elm,state,file_browser,hide", "");
|
||||
}
|
||||
|
||||
void base_edc_navigator_deselect(void)
|
||||
{
|
||||
if (config_edc_navigator_get())
|
||||
edc_navigator_deselect();
|
||||
}
|
||||
|
||||
void base_edc_navigator_toggle(Eina_Bool toggle)
|
||||
{
|
||||
base_data *bd = g_bd;
|
||||
|
@ -107,7 +113,10 @@ void base_edc_navigator_toggle(Eina_Bool toggle)
|
|||
elm_object_signal_emit(bd->layout, "elm,state,edc_navigator,show", "");
|
||||
}
|
||||
else
|
||||
elm_object_signal_emit(bd->layout, "elm,state,edc_navigator,hide", "");
|
||||
{
|
||||
elm_object_signal_emit(bd->layout, "elm,state,edc_navigator,hide", "");
|
||||
edc_navigator_deselect();
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -27,6 +27,8 @@ typedef struct edc_navigator_s
|
|||
Elm_Genlist_Item_Class *programs_itc;
|
||||
Elm_Genlist_Item_Class *program_itc;
|
||||
|
||||
Eina_Bool selected : 1;
|
||||
|
||||
} navi_data;
|
||||
|
||||
typedef enum
|
||||
|
@ -112,6 +114,26 @@ static void programs_contract(programs_it *pit);
|
|||
/*****************************************************************************/
|
||||
/* Internal method implementation */
|
||||
/*****************************************************************************/
|
||||
static void
|
||||
gl_selected_cb(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
navi_data *nd = data;
|
||||
nd->selected = EINA_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
gl_unselected_cb(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
navi_data *nd = data;
|
||||
nd->selected = EINA_FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
navigator_item_deselect(navi_data *nd)
|
||||
{
|
||||
Elm_Object_Item *it = elm_genlist_selected_item_get(nd->genlist);
|
||||
if (it) elm_genlist_item_selected_set(it, EINA_FALSE);
|
||||
}
|
||||
|
||||
static int
|
||||
gl_comp_func(const void *pa, const void *pb)
|
||||
|
@ -626,7 +648,6 @@ gl_state_selected_cb(void *data, Evas_Object *obj EINA_UNUSED,
|
|||
state_it *sit = data;
|
||||
find_state_proc(sit->pit->git->name, sit->pit->name, part_type_get(sit->pit),
|
||||
sit->name);
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1227,6 +1248,13 @@ gl_contract_request_cb(void *data, Evas_Object *obj, void *event_info)
|
|||
/*****************************************************************************/
|
||||
/* Externally accessible calls */
|
||||
/*****************************************************************************/
|
||||
void
|
||||
edc_navigator_deselect(void)
|
||||
{
|
||||
navi_data *nd = g_nd;
|
||||
if (!nd || !nd->selected) return;
|
||||
navigator_item_deselect(nd);
|
||||
}
|
||||
|
||||
void
|
||||
edc_navigator_group_update(const char *cur_group)
|
||||
|
@ -1235,11 +1263,7 @@ edc_navigator_group_update(const char *cur_group)
|
|||
if (!nd) return;
|
||||
|
||||
//Cancel item selection if group was not indicated.
|
||||
if (!cur_group)
|
||||
{
|
||||
Elm_Object_Item *it = elm_genlist_selected_item_get(nd->genlist);
|
||||
if (it) elm_genlist_item_selected_set(it, EINA_FALSE);
|
||||
}
|
||||
if (!cur_group) navigator_item_deselect(nd);
|
||||
|
||||
Eina_List *group_list = edje_file_collection_list(config_output_path_get());
|
||||
unsigned int cur_group_len = 0;
|
||||
|
@ -1347,6 +1371,10 @@ edc_navigator_init(Evas_Object *parent)
|
|||
gl_expand_request_cb, nd);
|
||||
evas_object_smart_callback_add(genlist, "contract,request",
|
||||
gl_contract_request_cb, nd);
|
||||
evas_object_smart_callback_add(genlist, "selected",
|
||||
gl_selected_cb, nd);
|
||||
evas_object_smart_callback_add(genlist, "selected",
|
||||
gl_unselected_cb, nd);
|
||||
evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_EXPAND);
|
||||
evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||
|
|
|
@ -459,6 +459,7 @@ enventor_live_view_cursor_moved_cb(void *data EINA_UNUSED,
|
|||
if (!config_stats_bar_get()) return;
|
||||
Enventor_Live_View_Cursor *cursor = event_info;
|
||||
stats_cursor_pos_update(cursor->x, cursor->y, cursor->relx, cursor->rely);
|
||||
base_edc_navigator_deselect();
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -535,6 +536,14 @@ enventor_focused_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
if (file_mgr_edc_modified_get()) file_mgr_warning_open();
|
||||
}
|
||||
|
||||
static void
|
||||
enventor_mouse_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED,
|
||||
Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
base_edc_navigator_deselect();
|
||||
}
|
||||
|
||||
static void
|
||||
enventor_setup(app_data *ad)
|
||||
{
|
||||
|
@ -565,6 +574,8 @@ enventor_setup(app_data *ad)
|
|||
enventor_ctxpopup_dismissed_cb, ad);
|
||||
evas_object_smart_callback_add(enventor, "focused",
|
||||
enventor_focused_cb, ad);
|
||||
evas_object_event_callback_add(enventor, EVAS_CALLBACK_MOUSE_DOWN,
|
||||
enventor_mouse_down_cb, ad);
|
||||
|
||||
evas_object_size_hint_expand_set(enventor, EVAS_HINT_EXPAND,
|
||||
EVAS_HINT_EXPAND);
|
||||
|
|
|
@ -28,3 +28,4 @@ void base_console_full_view(void);
|
|||
void base_file_browser_toggle(Eina_Bool toggle);
|
||||
void base_edc_navigator_toggle(Eina_Bool toggle);
|
||||
void base_edc_navigator_group_update(void);
|
||||
void base_edc_navigator_deselect(void);
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
Evas_Object *edc_navigator_init(Evas_Object *parent);
|
||||
void edc_navigator_term(void);
|
||||
void edc_navigator_group_update(const char *cur_group);
|
||||
void edc_navigator_deselect(void);
|
||||
|
|
Loading…
Reference in New Issue