redo some systray appindicator stuff so the menu doesn't immediately close
This commit is contained in:
parent
76ad5a9218
commit
275e20b2bc
|
@ -131,7 +131,7 @@ _item_submenu_new(E_DBusMenu_Item *item, E_Menu_Item *mi)
|
||||||
e_menu_item_radio_set(submi, 1);
|
e_menu_item_radio_set(submi, 1);
|
||||||
if (child->toggle_type)
|
if (child->toggle_type)
|
||||||
e_menu_item_toggle_set(submi, child->toggle_state);
|
e_menu_item_toggle_set(submi, child->toggle_state);
|
||||||
if (eina_inlist_count(child->sub_items))
|
if (child->sub_items)
|
||||||
_item_submenu_new(child, submi);
|
_item_submenu_new(child, submi);
|
||||||
e_util_menu_item_theme_icon_set(submi, child->icon_name);
|
e_util_menu_item_theme_icon_set(submi, child->icon_name);
|
||||||
}
|
}
|
||||||
|
@ -139,14 +139,19 @@ _item_submenu_new(E_DBusMenu_Item *item, E_Menu_Item *mi)
|
||||||
return m;
|
return m;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
void
|
||||||
_item_menu_new(Notifier_Item_Icon *ii)
|
_clicked_item_cb(void *data, Evas *evas, Evas_Object *obj __UNUSED__, void *event)
|
||||||
{
|
{
|
||||||
|
Notifier_Item_Icon *ii = data;
|
||||||
|
Evas_Event_Mouse_Down *ev = event;
|
||||||
E_DBusMenu_Item *root_item;
|
E_DBusMenu_Item *root_item;
|
||||||
E_Menu *m;
|
E_Menu *m;
|
||||||
E_Zone *zone;
|
E_Zone *zone;
|
||||||
int x, y;
|
int x, y;
|
||||||
E_Gadcon *gadcon = evas_object_data_get(ii->icon, "gadcon");
|
E_Gadcon *gadcon = evas_object_data_get(ii->icon, "gadcon");
|
||||||
|
|
||||||
|
if (ev->button != 1) return;
|
||||||
|
|
||||||
EINA_SAFETY_ON_NULL_RETURN(gadcon);
|
EINA_SAFETY_ON_NULL_RETURN(gadcon);
|
||||||
if (!ii->item->dbus_item) return;
|
if (!ii->item->dbus_item) return;
|
||||||
root_item = ii->item->dbus_item;
|
root_item = ii->item->dbus_item;
|
||||||
|
@ -156,19 +161,11 @@ _item_menu_new(Notifier_Item_Icon *ii)
|
||||||
e_gadcon_locked_set(gadcon, 1);
|
e_gadcon_locked_set(gadcon, 1);
|
||||||
e_menu_post_deactivate_callback_set(m, _menu_post_deactivate, gadcon);
|
e_menu_post_deactivate_callback_set(m, _menu_post_deactivate, gadcon);
|
||||||
|
|
||||||
zone = e_util_zone_current_get(e_manager_current_get());
|
zone = e_gadcon_zone_get(gadcon);
|
||||||
ecore_evas_pointer_xy_get(zone->comp->ee, &x, &y);
|
ecore_evas_pointer_xy_get(zone->comp->ee, &x, &y);
|
||||||
e_menu_activate_mouse(m, zone, x, y, 1, 1, E_MENU_POP_DIRECTION_DOWN, 0);
|
e_menu_activate_mouse(m, zone, x, y, 1, 1, E_MENU_POP_DIRECTION_DOWN, ev->timestamp);
|
||||||
}
|
evas_event_feed_mouse_up(evas, ev->button,
|
||||||
|
EVAS_BUTTON_NONE, ev->timestamp, NULL);
|
||||||
void
|
|
||||||
_clicked_item_cb(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event)
|
|
||||||
{
|
|
||||||
Notifier_Item_Icon *ii = data;
|
|
||||||
Evas_Event_Mouse_Down *ev = event;
|
|
||||||
|
|
||||||
if (ev->button != 1) return;
|
|
||||||
_item_menu_new(ii);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Reference in New Issue