menu: ensure clicking outside does nothing.
This commit is contained in:
parent
4a27a4d636
commit
f54ded6c4d
20
src/bin/ui.c
20
src/bin/ui.c
|
@ -1525,7 +1525,11 @@ _btn_kill_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info
|
||||||
static void
|
static void
|
||||||
_item_menu_dismissed_cb(void *data EINA_UNUSED, Evas_Object *obj, void *ev EINA_UNUSED)
|
_item_menu_dismissed_cb(void *data EINA_UNUSED, Evas_Object *obj, void *ev EINA_UNUSED)
|
||||||
{
|
{
|
||||||
|
Ui *ui = data;
|
||||||
|
|
||||||
evas_object_del(obj);
|
evas_object_del(obj);
|
||||||
|
|
||||||
|
ui->menu = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1564,9 +1568,10 @@ _item_menu_kill_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EI
|
||||||
static void
|
static void
|
||||||
_item_menu_cancel_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
_item_menu_cancel_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||||
{
|
{
|
||||||
Evas_Object *menu = data;
|
Ui *ui = data;
|
||||||
|
|
||||||
elm_menu_close(menu);
|
elm_menu_close(ui->menu);
|
||||||
|
ui->menu = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1608,10 +1613,10 @@ _item_menu_create(Ui *ui, Proc_Info *proc)
|
||||||
Eina_Bool stopped;
|
Eina_Bool stopped;
|
||||||
if (!proc) return NULL;
|
if (!proc) return NULL;
|
||||||
|
|
||||||
menu = elm_menu_add(ui->win);
|
ui->menu = menu = elm_menu_add(ui->win);
|
||||||
if (!menu) return NULL;
|
if (!menu) return NULL;
|
||||||
|
|
||||||
evas_object_smart_callback_add(menu, "dismissed", _item_menu_dismissed_cb, NULL);
|
evas_object_smart_callback_add(menu, "dismissed", _item_menu_dismissed_cb, ui);
|
||||||
|
|
||||||
stopped = !!strcmp(proc->state, "stop");
|
stopped = !!strcmp(proc->state, "stop");
|
||||||
|
|
||||||
|
@ -1627,7 +1632,7 @@ _item_menu_create(Ui *ui, Proc_Info *proc)
|
||||||
if (!stopped) elm_object_item_disabled_set(menu_it2, EINA_TRUE);
|
if (!stopped) elm_object_item_disabled_set(menu_it2, EINA_TRUE);
|
||||||
elm_menu_item_add(menu, menu_it, _icon_path_get("kill"), "Kill", _item_menu_kill_cb, proc);
|
elm_menu_item_add(menu, menu_it, _icon_path_get("kill"), "Kill", _item_menu_kill_cb, proc);
|
||||||
elm_menu_item_separator_add(menu, menu_it);
|
elm_menu_item_separator_add(menu, menu_it);
|
||||||
elm_menu_item_add(menu, menu_it, _icon_path_get("cancel"), "Cancel", _item_menu_cancel_cb, menu);
|
elm_menu_item_add(menu, menu_it, _icon_path_get("cancel"), "Cancel", _item_menu_cancel_cb, ui);
|
||||||
|
|
||||||
return menu;
|
return menu;
|
||||||
}
|
}
|
||||||
|
@ -1666,10 +1671,13 @@ _item_pid_clicked_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
|
||||||
|
|
||||||
ui = data;
|
ui = data;
|
||||||
it = event_info;
|
it = event_info;
|
||||||
|
|
||||||
|
elm_genlist_item_selected_set(it, EINA_FALSE);
|
||||||
|
if (ui->menu) return;
|
||||||
|
|
||||||
proc = elm_object_item_data_get(it);
|
proc = elm_object_item_data_get(it);
|
||||||
if (!proc) return;
|
if (!proc) return;
|
||||||
|
|
||||||
elm_genlist_item_selected_set(it, EINA_FALSE);
|
|
||||||
ui->selected_pid = proc->pid;
|
ui->selected_pid = proc->pid;
|
||||||
_process_panel_update(ui);
|
_process_panel_update(ui);
|
||||||
|
|
||||||
|
|
|
@ -58,6 +58,7 @@ typedef enum
|
||||||
typedef struct Ui
|
typedef struct Ui
|
||||||
{
|
{
|
||||||
Evas_Object *win;
|
Evas_Object *win;
|
||||||
|
Evas_Object *menu;
|
||||||
Evas_Object *panel;
|
Evas_Object *panel;
|
||||||
Evas_Object *scroller;
|
Evas_Object *scroller;
|
||||||
Evas_Object *content;
|
Evas_Object *content;
|
||||||
|
|
Loading…
Reference in New Issue