From d9c27256c61bf5813aa3fec88249c52cef450bb3 Mon Sep 17 00:00:00 2001 From: Alastair Poole Date: Fri, 17 Apr 2020 23:49:12 +0100 Subject: [PATCH] ui: use smart callbacks because they are smarter. Using EVAS_EVENT is too complicated use smart callback ands select/unselect the item rather than calculating the location etc and introducing a bug where you could drag the slider and then mouse up over the list and bring the process view up. :) thanks jf_simon for report. --- src/bin/ui.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/bin/ui.c b/src/bin/ui.c index 65e7aa4..392155a 100644 --- a/src/bin/ui.c +++ b/src/bin/ui.c @@ -1474,20 +1474,18 @@ _btn_kill_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info } static void -_item_pid_clicked_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +_item_pid_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info) { Ui *ui; - Evas_Event_Mouse_Up *ev; Elm_Object_Item *it; Proc_Info *proc; ui = data; - - ev = event_info; - it = elm_genlist_at_xy_item_get(obj, ev->output.x, ev->output.y, NULL); + it = event_info; proc = elm_object_item_data_get(it); if (!proc) return; + elm_genlist_item_selected_set(it, EINA_FALSE); ui->selected_pid = proc->pid; _process_panel_update(ui); @@ -1666,7 +1664,7 @@ _ui_tab_system_add(Ui *ui) ui->scroller = ui->genlist_procs = plist = elm_genlist_add(parent); elm_object_focus_allow_set(plist, EINA_FALSE); elm_genlist_homogeneous_set(plist, EINA_TRUE); - elm_genlist_select_mode_set(plist, ELM_OBJECT_SELECT_MODE_NONE); + //elm_genlist_select_mode_set(plist, ELM_OBJECT_SELECT_MODE_NONE); evas_object_size_hint_weight_set(plist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(plist, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_show(plist); @@ -1681,7 +1679,7 @@ _ui_tab_system_add(Ui *ui) evas_object_smart_callback_add(ui->btn_cmd, "clicked", _btn_cmd_clicked_cb, ui); evas_object_smart_callback_add(ui->btn_state, "clicked", _btn_state_clicked_cb, ui); evas_object_smart_callback_add(ui->btn_cpu_usage, "clicked", _btn_cpu_usage_clicked_cb, ui); - evas_object_event_callback_add(ui->genlist_procs, EVAS_CALLBACK_MOUSE_UP, _item_pid_clicked_cb, ui); + evas_object_smart_callback_add(ui->genlist_procs, "selected", _item_pid_clicked_cb, ui); } static void