Example #1
0
static void
_ecore_evas_fullscreen_set(Ecore_Evas *ee, Eina_Bool on)
{
   Eina_List *l;
   Ecore_Fb_Input_Device *dev;
   Ecore_Evas_Engine_FB_Data *idata = ee->engine.data;
   int resized = 0;

   if (((ee->prop.fullscreen) && (on)) ||
       ((!ee->prop.fullscreen) && (!on))) return;
   if (on)
     {
        int w, h;

        idata->real_w = ee->w;
        idata->real_h = ee->h;
        w = ee->w;
        h = ee->h;
        ecore_fb_size_get(&w, &h);
        if ((w == 0) && (h == 0))
          {
             w = ee->w;
             h = ee->h;
          }
        if ((w != ee->w) || (h != ee->h)) resized = 1;
        ee->w = w;
        ee->h = h;
        ee->req.w = ee->w;
        ee->req.h = ee->h;
        evas_output_size_set(ee->evas, ee->w, ee->h);
        evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
        evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
     }
   else
     {
        if ((idata->real_w != ee->w) || (idata->real_h != ee->h)) resized = 1;
        ee->w = idata->real_w;
        ee->h = idata->real_h;
        ee->req.w = ee->w;
        ee->req.h = ee->h;
        evas_output_size_set(ee->evas, ee->w, ee->h);
        evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
        evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
     }
   ee->prop.fullscreen = on;
   EINA_LIST_FOREACH(ecore_evas_input_devices, l, dev)
     ecore_fb_input_device_axis_size_set(dev, ee->w, ee->h);
   /* rescale the input device area */
   if (resized)
     {
        if (ee->func.fn_resize) ee->func.fn_resize(ee);
     }
}
EAPI void *
e_modapi_init(E_Module *m)
{
   Ecore_Evas *ee;
   E_Screen *screen;
   E_Comp *comp;
   int w, h;

   printf("LOAD WL_FB MODULE\n");

   /* try to init ecore_x */
   if (!ecore_fb_init(NULL))
     {
        fprintf(stderr, "Could not initialize ecore_fb");
        return NULL;
     }

   ecore_fb_size_get(&w, &h);
   ee = ecore_evas_fb_new(NULL, 0, w, h);
   comp = e_comp_new();
   comp->comp_type = E_PIXMAP_TYPE_WL;
   comp->ee = ee;
   if (!e_xinerama_fake_screens_exist())
     {
        screen = E_NEW(E_Screen, 1);
        screen->escreen = screen->screen = 0;
        screen->x = 0;
        screen->y = 0;
        screen->w = w;
        screen->h = h;
        e_xinerama_screens_set(eina_list_append(NULL, screen));
     }
   comp->man = e_manager_new(0, comp, w, h);
   e_comp_wl_init();
   e_comp_canvas_init(comp);
   e_comp_canvas_fake_layers_init(comp);
   comp->pointer = e_pointer_canvas_new(comp->evas, 1);

   ecore_wl_init(NULL);
   ecore_wl_server_mode_set(1);
   return m;
}
Example #3
0
E_API void *
e_modapi_init(E_Module *m)
{
   Ecore_Evas *ee;
   E_Screen *screen;
   int w, h;

   printf("LOAD WL_FB MODULE\n");

   /* try to init ecore_x */
   if (!ecore_fb_init(NULL))
     {
        fprintf(stderr, "Could not initialize ecore_fb");
        return NULL;
     }

   ecore_fb_size_get(&w, &h);
   ee = ecore_evas_fb_new(NULL, 0, w, h);

   e_comp->ee = ee;

   if (!e_xinerama_fake_screens_exist())
     {
        screen = E_NEW(E_Screen, 1);
        screen->escreen = screen->screen = 0;
        screen->x = 0;
        screen->y = 0;
        screen->w = w;
        screen->h = h;
        e_xinerama_screens_set(eina_list_append(NULL, screen));
     }
   e_comp_wl_init();
   e_comp_canvas_init(w, h);
   e_comp->pointer = e_pointer_canvas_new(e_comp->ee, EINA_TRUE);

   ecore_wl_init(NULL);
   ecore_wl_server_mode_set(1);
   return m;
}
Example #4
0
static void
_ecore_evas_mouse_move_process_fb(Ecore_Evas *ee, int x, int y)
{
   const Efl_Input_Device *pointer;
   Ecore_Evas_Cursor *cursor;
   int fbw, fbh;

   ecore_fb_size_get(&fbw, &fbh);

   pointer = evas_default_device_get(ee->evas, EFL_INPUT_DEVICE_TYPE_MOUSE);
   pointer = evas_device_parent_get(pointer);
   cursor = eina_hash_find(ee->prop.cursors, &pointer);
   EINA_SAFETY_ON_NULL_RETURN(cursor);
   cursor->pos_x = x;
   cursor->pos_y = y;
   if (cursor->object)
     {
        evas_object_show(cursor->object);
        if (ee->rotation == 0)
          evas_object_move(cursor->object,
                           x - cursor->hot.x,
                           y - cursor->hot.y);
        else if (ee->rotation == 90)
          evas_object_move(cursor->object,
                           (fbh - ee->h) + ee->h - y - 1 - cursor->hot.x,
                           x - cursor->hot.y);
        else if (ee->rotation == 180)
          evas_object_move(cursor->object,
                           (fbw - ee->w) + ee->w - x - 1 - cursor->hot.x,
                           (fbh - ee->h) + ee->h - y - 1 - cursor->hot.y);
        else if (ee->rotation == 270)
          evas_object_move(cursor->object,
                           y - cursor->hot.x,
                           (fbw - ee->w) + ee->w - x - 1 - cursor->hot.y);
     }
}