Ejemplo n.º 1
0
static Eina_Bool 
_e_pointer_cb_idle_poller(void *data)
{
   E_Pointer *ptr;
   int x = 0, y = 0;

   if (!(ptr = data)) return ECORE_CALLBACK_RENEW;

   if ((e_powersave_mode_get() >= E_POWERSAVE_MODE_MEDIUM) || 
       (!e_config->idle_cursor))
     {
        ptr->idle_poll = NULL;
        return ECORE_CALLBACK_CANCEL;
     }

   if (ptr->canvas)
     ecore_evas_pointer_xy_get(ptr->ee, &x, &y);
#ifndef HAVE_WAYLAND_ONLY
   else
     ecore_x_pointer_xy_get(ptr->win, &x, &y);
#endif

   if ((ptr->x != x) || (ptr->y != y))
     {
        ptr->x = x;
        ptr->y = y;
        if (ptr->idle) _e_pointer_active(ptr);
        return ECORE_CALLBACK_RENEW;
     }

   if (!ptr->idle) _e_pointer_idle(ptr);

   return ECORE_CALLBACK_RENEW;
}
Ejemplo n.º 2
0
static void
_cb_item_open(void *data, Evas_Object *obj, const char *emission, const char *source)
{
   News_Item *ni;
   E_Manager *man;
   E_Zone *zone;
   int cx, cy;

   ni = data;

   switch (ni->config->openmethod)
     {
     case NEWS_ITEM_OPENMETHOD_VIEWER:
        if (!ni->viewer)
          news_viewer_create(ni);
        else
          news_viewer_destroy(ni->viewer);
        break;
     case NEWS_ITEM_OPENMETHOD_BROWSER:
        news_menu_browser_show(ni);
        man = e_manager_current_get();
        zone = e_util_zone_current_get(man);
        ecore_x_pointer_xy_get(man->root, &cx, &cy);
        e_menu_activate_mouse(ni->menu_browser, zone,
                              cx, cy, 1, 1,
                              E_MENU_POP_DIRECTION_DOWN, 
                              ecore_x_current_time_get());
        break;
     }
}
Ejemplo n.º 3
0
static Eina_Bool 
_e_pointer_cb_idle_pre(void *data)
{
   E_Pointer *ptr;

   if (!(ptr = data)) return ECORE_CALLBACK_RENEW;

   if (ptr->canvas)
     ecore_evas_pointer_xy_get(ptr->ee, &ptr->x, &ptr->y);
#ifndef HAVE_WAYLAND_ONLY
   else
     ecore_x_pointer_xy_get(ptr->win, &ptr->x, &ptr->y);
#endif

   ptr->idle_tmr = ecore_timer_loop_add(4.0, _e_pointer_cb_idle_wait, ptr);

   return ECORE_CALLBACK_CANCEL;
}