This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch devs/dimmus/paledit
in repository enlightenment.
View the commit online.
commit eaee30d54dc35cc565024e6e13ffb5d8993d9742
Author: dimmus <dmitri.chudi...@gmail.com>
AuthorDate: Sun Jun 9 14:06:46 2024 +0500
tools: paledit - add timer to sort cb
---
src/bin/tools/paledit/palcols.c | 29 ++++++++++++++++++-----------
1 file changed, 18 insertions(+), 11 deletions(-)
diff --git a/src/bin/tools/paledit/palcols.c b/src/bin/tools/paledit/palcols.c
index 6f5ba20f5..a2463cdd2 100644
--- a/src/bin/tools/paledit/palcols.c
+++ b/src/bin/tools/paledit/palcols.c
@@ -1,5 +1,7 @@
#include "main.h"
+static Ecore_Timer *sort_timer = NULL;
+
typedef struct _Search_Event_Data Search_Event_Data;
struct _Search_Event_Data
{
@@ -211,11 +213,7 @@ palcols_fill(Evas_Object *win, const char *filter_str)
NULL, ELM_GENLIST_ITEM_NONE,
_cb_class_insert_cmp,
_cb_class_gl_sel, win);
- /* XXX: We found exact item, so focus it.
- * But not shure that it's usefull, may be even annoying.
- * It throught errors when you filter from exact to exact imidiately:
- * Ex.: enter ':bg-dim', then select '-dim' part and delete it.
- * You get exact ':bg' and focus_manager error in stdout ;( */
+ /* We found exactly equal genlist item, so focus it. */
if (!sel_it && filter_str && !strcasecmp(col->name, filter_str))
sel_it = it;
}
@@ -532,20 +530,29 @@ _cb_modify_click(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA
}
static void
-_search_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
+_cb_search_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
free(data);
}
-static void
-_search_changed_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
+static Eina_Bool
+_cb_items_sort(void *data)
{
Search_Event_Data * event_data = (Search_Event_Data *)data;
-
const char *str = elm_entry_entry_get(event_data->en_obj);
+
if (!str || !strlen(str)) str = NULL;
palcols_fill(event_data->win_obj, str);
+
+ return EINA_FALSE;
+}
+
+static void
+_cb_search_changed(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
+{
+ if (sort_timer) ecore_timer_del(sort_timer);
+ sort_timer = ecore_timer_add(0.3, _cb_items_sort, data);
}
Evas_Object *
@@ -671,8 +678,8 @@ palcols_add(Evas_Object *win)
event_data->en_obj = en;
event_data->win_obj = win;
- evas_object_smart_callback_add(en, "changed,user", _search_changed_cb, (void*)event_data);
- evas_object_event_callback_add(gl, EVAS_CALLBACK_FREE, _search_del_cb, (void*)event_data);
+ evas_object_smart_callback_add(en, "changed,user", _cb_search_changed, (void*)event_data);
+ evas_object_event_callback_add(gl, EVAS_CALLBACK_FREE, _cb_search_del, (void*)event_data);
return bxl;
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.